- 目的
在win10笔记本上有代理服务,使用vmvare虚拟机创建ubuntu想要共享宿主机的代理
宿主机防火墙
- 宿主机:win10,笔记本电脑
- 虚拟机:ubuntu24,vmware
防火墙配置
对于面向用户的win笔记本,默认是禁止所有入站请求的
如果我们需要宿主机兼职代理服务器等功能,需要配置允许来自虚拟网络的请求
在windows防火墙高级设置中,为入站规则添加一条自定义规则,允许所有程序、端口等等。限制远程IP为vmvare的虚拟网段(219为NAT模式,198为仅主机模式)
clash配置
必须开启 “允许局域网代理”,以接收来自虚拟机的代理请求
命令行与APT
- 环境变量添加代理
- APT下载添加代理
将以下内容保存成脚本 proxy_init.sh
然后执行 source proxy_init.sh(不能用sh或者bash)
#!/bin/bash
# 遇到错误时立即退出
set -e
proxy_url="http://192.168.219.1:7890"
# 命令行添加代理
echo '----------命令行添加代理----------'
proxy_settings=$(cat <<EOF
# 添加代理
export http_proxy=$proxy_url
export https_proxy=$proxy_url
EOF
)
if ! grep -q "http_proxy" ~/.bashrc; then
echo "$proxy_settings" >> ~/.bashrc
echo "代理设置已添加到 ~/.bashrc"
else
echo "代理设置已存在,跳过添加。"
fi
source ~/.bashrc
echo "请手动执行 source ~/.bashrc 或重新打开终端以使代理设置生效"
# APT源添加代理
echo '----------APT源添加代理----------'
apt_proxy_settings=$(cat <<EOF
Acquire::http::Proxy "$proxy_url";
Acquire::https::Proxy "$proxy_url";
EOF
)
sudo tee /etc/apt/apt.conf.d/95proxies <<< "$apt_proxy_settings" > /dev/null
sudo apt update -y
由于网络代理可能存在波动,导致 apt update 时出现502,但这无伤大雅,这种情况只要多执行几次就好了
确保宿主机代理服务正常,在虚拟机 curl www.google.com 返回内容证明代理已生效
sudo代理环境
sudo重置环境变量:当你使用sudo运行命令时,出于安全考虑,sudo默认会重置大部分环境变量,包括http_proxy和https_proxy。这可以防止恶意程序通过设置环境变量来劫持sudo命令的网络请求。
使用sudo命令时,我们配置的代理会失效,因为不会加载我们配置的代理环境变量
验证:sudo curl www.google.com 无法响应,证明代理失效
- 临时解决
对部分需要代理,同时需要sudo的命令,使用 -E 参数,可以保留用户环境变量
如:sudo -E curl www.google.com 正常响应,代理生效
- 长久解决
将代理配置,同时写入 /root/.bashrc 中