不在本地运行厦门大学SSLVPN(EasyConnect),使用“docker容器+服务器转发”的方法实现内网访问。
本方法参考资料将在尾部统一列出。
-
拥有公网IP的服务器(以Debian系为例)
-
Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
dpkg -l | grep docker
dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P # 删除无用的相关的配置文件
sudo apt-get autoremove docker-ce-*
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
docker --version
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo add-apt-repository \
"deb [arch=armhf] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
7.到目录中设置daemon.json文件(值得注意的是,如果是首次安装,理论上是不会有 cd /etc/docker 这个目录滴,所以如果你真的是第一次安装, 请新建目录或者跳过此步骤,等你下面步骤报错之后,嘿嘿这个目录就会有了,然后从头走一遍你就会发现,这步可以用了)
cd /etc/docker/
ls
touch daemon.json
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
touch ~/.easyconn
docker run --device /dev/net/tun --cap-add NET_ADMIN -ti -v $HOME/.easyconn:/root/.easyconn -p 127.0.0.1:1080:1080 -e EC_VER=7.6.7 hagb/docker-easyconnect:cli
其中 EC_VER
表示EasyConnect版本号,厦门大学使用的为 7.6.7
版本; hagb/docker-easyconnect:cli
表示多版本( 7.6.3
, 7.6.7
, 7.6.8
)纯命令行版
详细信息见@Hagb分享的内容
-
SSLVPN地址
:https://sslvpn.xmu.edu.cn
厦门大学SSLVPN地址 -
用户名
: 厦门大学学号 -
密码
: 厦门大学Wi-Fi/VPN/宿舍网密码
lsof -i tcp:1080
cd
ls -a
mkdir .ssh
cd .ssh
vi config
Host example.com #你要访问的SSH地址
ProxyCommand=nc -X5 -x localhost:1080 %h %p
ssh username@example.com
由于这个sock5是不带鉴权的,所以不能直接把公网的端口打开,这样会有安全问题,我们用 ssh 把服务器的 1080
端口转发到本地的 1080
端口
ssh -L 1080:127.0.0.1:1080 你服务器的用户名@你的服务器 IP
clash的配置文件默认路径(以windows为例)
C:\Users\你电脑的用户名\.config\clash\profiles
在 *********.yml
(一般为一串数字)中增加以下内容
proxies:
- {name: "XMUVPN", server: "127.0.0.1", port: 1080, type: socks5}
rules:
- IP-CIDR,***.**.**.*/24,XMUVPN
***.**.**.*
表示需要访问的内网地址,如果有其他规则在对应部分添加即可。
EasyConnect来自@shmille 提供的命令行版客户端 deb 包
特别感谢@Hagb慷慨分享的docker-easyconnect