如何配置VirtualBox中CentOS 7虚拟机共享主机Shadowsocks VPN
搞定VirtualBox中CentOS7访问主机Shadowsocks VPN的方案
嘿,我之前刚好折腾过一模一样的场景!Win10主机跑Shadowsocks,VirtualBox里的CentOS7要蹭主机的VPN上网,踩了几个坑后终于搞定了,下面是亲测有效的步骤,跟着来就行:
第一步:先把主机的Shadowsocks配置好
- 打开你的shadowsocks-windows客户端,点右上角的「选项设置」
- 找到允许来自局域网的连接这个选项,一定要勾选上!这是虚拟机能访问主机代理的关键
- 记好你的Shadowsocks本地代理端口,默认是1080,如果你自己改了就用修改后的端口
第二步:设置VirtualBox虚拟机的网络模式
- 打开VirtualBox,选中你的CentOS7虚拟机,点击「设置」→「网络」
- 网络连接方式选NAT(这个模式下虚拟机默认能和主机通信,也能通过主机转发上网,最省心)
- 启动CentOS7,打开终端输入
ip addr或者ip route,确认虚拟机的网关是10.0.2.2(NAT模式下这个地址对应主机的127.0.0.1,必须要对)
第三步:给CentOS7配置代理
这里给你三种方法,选适合自己的就行:
方法一:临时生效(重启终端就没了,适合临时测试)
打开终端,执行下面的命令(把1080换成你自己的Shadowsocks端口):
export http_proxy=http://10.0.2.2:1080 export https_proxy=http://10.0.2.2:1080 export no_proxy=localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16
测试一下:输入curl https://www.google.com,如果能返回内容就说明成功了!
方法二:永久生效(对当前用户)
编辑用户的环境变量文件:
vi ~/.bashrc
在文件末尾添加上面的三条export命令,保存退出后执行:
source ~/.bashrc
这样每次打开终端都会自动加载代理配置,重启虚拟机也有效。
方法三:图形界面全局代理(适合用桌面版的同学)
- 打开CentOS7的「设置」→「网络」→「网络代理」
- 选择「手动」,然后在HTTP代理和HTTPS代理的地址栏填
10.0.2.2,端口填你的Shadowsocks端口 - 点击「应用」,然后打开浏览器试试能不能访问外网
第四步:常见问题排查
- 如果虚拟机ping不通
10.0.2.2:检查VirtualBox的网络模式是不是NAT,重启虚拟机试试,或者看看主机的防火墙有没有拦截 - 如果连代理端口失败:确认Shadowsocks的「允许局域网连接」真的勾了,Win10防火墙要允许Shadowsocks程序通过,实在不行临时关防火墙测试
- 如果curl还是访问不了:检查代理地址和端口是不是写错了,或者Shadowsocks本身有没有正常连接(主机能上网吗?)
内容的提问来源于stack exchange,提问作者Amitabha
相关产品推荐
相关产品推荐

