特别注意:本教程基于VMware虚拟机,安装Ubuntu22.04。其他类型虚拟机及Linux其他版本配置相似但有所不同。
或
开启虚拟机系统后,查看主机分配的虚拟机IP地址。此时可以看到虚拟机被分配了两个网络,其中VMnet1为1.2中网络连接选择“仅主机模式”时使用的网络,VMnet8为网络连接选择“NAT模式”时使用的网络。
由于我们选择的是“NAT模式”,因此需要记下VMnet8中IPv4地址,即192.168.81.1,子网掩码为255.255.255.0。.
代理工具内查看监听端口号,一般为10809或7890,其他工具请自行查找。同时须开启代理工具内“允许来自局域网的连接”。
打开Ubuntu设置,选择网络-网络代理,点击右侧按钮进入设置界面。
选择“手动”,填写下方相关代理IP和监听端口,IP地址为2.1中VMnet8下IPv4地址,端口为代理工具使用端口。
重启虚拟机网络后,开启主机代理,打开虚拟机终端运行:
curl cip.cc
如代理成功,会显示代理方IP地址及相关数据,如未成功则显示本地所在网络信息。
如无需代理时,可选择将虚拟机网络代理设置为“关闭”,或在主机内断开代理工具代理即可。
新建.sh文件。
开启代理版
#!/bin/bash
#设置代理为手动
gsettings set org.gnome.system.proxy mode 'manual'
#终端反馈
echo "已开启"
echo 按任意键继续
#确保反馈后未按键时不会退出终端
read -n 1
关闭代理版
#!/bin/bash
#设置代理为无
gsettings set org.gnome.system.proxy mode 'none'
#终端反馈
echo "已关闭"
echo 按任意键继续
#确保反馈后未按键时不会退出终端
read -n 1
新建.desktop文件,输入以下内容,并移动至桌面(注意文件不可删除.desktop后缀,否则系统会默认为文本文件,下方内容中Name字段会修正图标显示文字)。
开启代理版
[Desktop Entry]
#快捷方式显示名称
Name = ON
#待执行.sh文件路径
Exec = /home/fujd/Desktop/ProxyControl/proxyManual.sh
#待执行.sh文件所在目录
Path = /home/fujd/Desktop/ProxyControl
#快捷方式显示图标路径
Icon = /home/fujd/Desktop/ProxyControl/ON.png
#是否显示终端,为确保.sh文件的echo能够被看到,此处要选择true
Terminal = true
#快捷方式类型
Type = Application
关闭代理版
[Desktop Entry]
#快捷方式显示名称
Name = OFF
#待执行.sh文件路径
Exec = /home/fujd/Desktop/ProxyControl/proxyDisabled.sh
#待执行.sh文件所在目录
Path = /home/fujd/Desktop/ProxyControl
#快捷方式显示图标路径
Icon = /home/fujd/Desktop/ProxyControl/OFF.png
#是否显示终端,为确保.sh文件的echo能够被看到,此处要选择true
Terminal = true
#快捷方式类型
Type = Application
现阶段此.desktop文件不可用,需要右键点击文件,选择“允许启动”,此时图标转换,可以双击运行,实现代理开启或关闭。
通过以上设置,我们已经可以通过全局代理方式在虚拟机上访问之前无法访问的网站和应用服务了,但某种情况下终端可能会无法被代理,或只是终端需要代理,不想如此麻烦进行设置。如果只需要在终端上实现代理,可以使用“proxychains”工具,具体方法如下:
可以选择apt直接安装,两种版本均可,但要注意,如果安装proxychains4,后续所有配置都需要将proxychains替换为proxychains4。
#4以下版本
apt-get install proxychains
#4及以上版本
apt-get install proxychains4
或通过make编译,编译配置不在此介绍。
git clone https://github.com/rofl0r/proxychains-ng
cd proxychains-ng
./configure
sudo make && make install
proxychains 的配置文件位于 /etc/proxychains.conf ,打开后在末尾添加根据需要填写使用的代理,前缀、IP地址和端口号与3.1内配置一致。不了解如何填写可以看.conf文件内的示例。
使用方法非常简单,在需要执行的命令前输入proxychains+空格即可,例如:
proxychains git clone https://github.com/xxxx/xxxx.git
但注意,使用ping命令时候添加proxychains无效,因为 proxychains 只会代理 TCP 连接,而 ping 使用的是 ICMP。
在使用proxychains进行命令行代理时,要保持主机代理工具处于代理状态,虚拟机无需设置或打开代理。
验证是否成功的方法与3.2一致。