目录
VMware Ubuntu 代理到 Windows veee 完整记录
背景
宿主机 Windows(192.168.1.5)运行 veee 代理(端口 15236,HTTP 代理),只监听 127.0.0.1。VMware 中运行 Ubuntu 虚拟机,需要让 Ubuntu 的终端和程序通过宿主机的 veee 代理访问外网。
最初宿主机通过有线网卡连接路由器,VMware 使用桥接模式一切正常。后因路由器损坏,改为 WiFi 上网,桥接目标网卡(有线)断开,导致以下问题:
- OpenWrt VM 网络瘫痪(桥接目标网卡未插线)
- Ubuntu VM 无法通过
192.168.1.5:15236连接 veee(veee 只绑定了 127.0.0.1)
第一步:解决 OpenWrt 网络 —— NAT + 仅主机双网卡
问题
VMware 桥接模式指向的有线网卡已断开(WiFi 桥接不稳定),OpenWrt 二层不通,ARP 表 MAC 全为 00:00:00:00:00:00。
方案
给 OpenWrt VM 配两张网卡:
| 网卡 | 模式 | 用途 |
|---|---|---|
| eth0 | NAT | OpenWrt 通过宿主机 WiFi 访问外网 |
| eth1(新增) | 仅主机(VMnet1) | 宿主机与 OpenWrt 互通 |
操作
VMware 设置: 关闭 VM → 设置 → 原有网卡改 NAT → 添加网卡设仅主机模式 → 启动。
OpenWrt /etc/config/network 新增:
config interface 'hostonly'
option device 'eth1'
option proto 'static'
option ipaddr '192.168.47.100'
option netmask '255.255.255.0'
/etc/init.d/network reload 后,宿主机 192.168.47.1 即可 ping 通 OpenWrt 192.168.47.100。
附带修复
dropbear SSH 只监听旧 IP 192.168.1.100:22,导致 ssh root@192.168.47.100 被拒绝:
uci set dropbear.@dropbear[0].Interface=''
uci commit dropbear
/etc/init.d/dropbear restart
第二步:暴露 veee 端口 —— netsh portproxy
veee 只监听 127.0.0.1:15236,其他设备无法直连。用 Windows netsh 端口转发把 veee 暴露到仅主机网络 192.168.47.1:15236:
netsh interface portproxy add v4tov4 listenport=15236 listenaddress=192.168.47.1 connectport=15236 connectaddress=127.0.0.1
验证:
netsh interface portproxy show v4tov4
同时附上 proxy-forward.bat 交互式管理脚本(启动/停止/状态/防火墙/连通性测试)。
第三步:Ubuntu 代理配置 —— proxy-manager.sh
最终链路
Ubuntu → 192.168.47.1:15236 (仅主机 VMnet1)
↓ netsh portproxy
127.0.0.1:15236 (veee)
↓
外网
脚本设计
proxy-manager.sh + deploy.sh 组成自动化代理管理套件:
proxy-manager.sh:核心管理脚本,负责探测宿主机 IP、写入代理环境变量deploy.sh:部署脚本,安装/卸载 systemd 服务,实现开机自启
关键设计点
-
IP 自动探测:优先检测
192.168.47.1(仅主机网络),依次回退到192.168.1.5、192.168.137.1、192.168.174.1 -
环境变量持久化:写入
~/.proxy_env,~/.bashrc自动 source(避免/etc/environmentPAM 加载不稳定的问题),同时写入 aiworker 和 root 两个用户 -
systemd 开机自启:通过
proxy-env.service在系统启动时自动设置代理 -
失败排查提示:检测失败时提示 veee 是否运行、portproxy 是否生效、VMnet1 IP 是否正确
使用方法
./deploy.sh install # 安装 + 开机自启
./deploy.sh uninstall # 卸载
./deploy.sh status # 查看状态
安装后新开终端自动生效,或 source ~/.proxy_env 立即加载。
文件清单
| 文件 | 位置 | 说明 |
|---|---|---|
proxy-manager.sh |
Ubuntu /home/aiworker/proxyshell/ |
代理管理核心脚本 |
deploy.sh |
Ubuntu /home/aiworker/proxyshell/ |
systemd 部署脚本 |
proxy-env.service |
Ubuntu /etc/systemd/system/ |
systemd 服务文件 |
proxy-forward.bat |
Windows C:\Users\Administrator\Downloads\proxyshell\ |
Windows 端口转发管理 |
踩坑记录
| 问题 | 原因 | 解决 |
|---|---|---|
| OpenWrt 与宿主机互 ping 不通 | 桥接目标有线网卡已断开 | 改用 NAT + 仅主机双网卡 |
| SSH Connection refused | dropbear 只监听旧 IP | 清空 Interface 绑定 |
/etc/environment 代理不生效 |
PAM 未加载到当前 shell | 改用 ~/.proxy_env + .bashrc source |
systemd 以 root 运行导致 .proxy_env 路径错误 |
$HOME 指向 /root |
同时写入 aiworker 和 root 的 home 目录 |
curl 不加 -x 不走代理 |
环境变量格式含反引号 / 未 export | 用 heredoc 生成干净的 export 文件 |
0 条评论