引子

linux用户在日常工作中低人一等,很多软件都没有linux版本,比如xx信的vpn。记录一下俺的解决方案

安卓手机热点

every proxy或类似软件将vpn分享出去,这是俺从一位短暂的同事那里得来的方法
every proxy官网

需要有一台备用手机

windows网络共享

windows机器连接vpn,分享该机器的vpn虚拟网卡,给linux主机添加vpn网段的路由

一个栗子

vpn网段

192.168.2.0/24

win主机

ip:192.168.4.123

linux主机执行以下命令

sudo route add -net 192.168.2.0/24 gw 192.168.4.123

要将vpn的虚拟网卡分享到ip为192.168.4.123的网卡

最终解决方案

场景:

工作时电脑需要连接vpn;公司有一台一直开机的win主机,俺可以通过这台win进行vpn共享

存在的问题:

不在公司时无法连接到该主机;每次都要输入命令

解决:

写一个开机自启动的shell脚本,其会在开机时找寻vpn分享主机,无法ping通则开启本地win虚拟机进行vpn分享,并自动添加路由

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
shareVpn="192.168.4.123"
localShareVpn="192.168.6.123"
ping "$shareVpn" -c 5
if [[ $? -eq 0 ]]; then
sudo route add -net 192.168.2.0/24 gw "$shareVpn"
else
sudo virsh start win-vpn
sudo route add -net 192.168.2.0/24 gw "$localShareVpn"
fi

win-vpn为虚拟机的名字

如果你使用普通用户执行该脚本,需要在sudoer文件中为route、virsh添加不需要密码就可以执行的权限

promax解决方案

俺直接用了俺同事在内网搭建的网桥,通过zerotier组网,直接愉快使用