Docker搭建虚拟局域网服务器--SoftetherVPN
Softether是一款全能型VPN网络工具,搭建虚拟局域网、DDNS、二层网桥、三层路由、L2TP连接、OpenVPN直接连接等网络功能只要你想得到它就能实现出来。本文将带来Softether的Docker搭建流程,以及实现一个虚拟局域网,支持windows、macos客户端连接以及所有设备的L2TP连接(包括安卓、IOS)。
Docker搭建服务端
1. 创建启动脚本
sh
mkdir -p /data/softether
cd /data/softether
touch start.sh
chmod +x start.sh
2. 编写脚本
sh
vim start.sh
# 写入以下脚本
docker run -d \
--name softether \
--restart=always \
--log-opt max-size=1m \
--cap-add NET_ADMIN \
-p 5555:5555/tcp \
-p 500:500/udp \
-p 4500:4500/udp \
-e SPW=服务端管理密码 \
siomiz/softethervpn
- --name 容器名称
- -p 5555:5555 映射服务端口
- -p 500:500/udp -p 4500:4500/udp L2TP服务端口,如果不需要L2TP可以不添加
- -e SPW=服务端管理密码 设置服务端管理密码
- 防火墙注意放行上述端口
3. 运行脚本./start.sh
4. 下载服务器控制软件,可视化操作
5. 安装后
打开软件,在服务端列表下方,点击新设置 填写你的服务器端所在IP地址,端口选择第二步映射出来的5555,密码处填写第二步设置的服务端管理密码。 确认后连接到服务器。
6. 此时Softether就已经安装就绪了,后续通过管理软件配置需要的功能即可
创建虚拟局域网服务
1. 点击创建虚拟hub
依次填写虚拟hub名称、密码、确认密码、勾选不像匿名用户枚举、点击确定保存。
2. 虚拟hub设置
- 选择创建的虚拟hub,点击管理虚拟hub,点击管理用户,按照需要创建若干用户。
- 点击虚拟NAT和虚拟DHCP服务器,点击启用SecureNat,点击SecureNat配置。
- 去勾使用虚拟NAT功能,删除默认网关与DNS。(如果没有这项操作,当你登陆了虚拟hub,你将可以通过服务端的网络进行互联网通信,注意:国内搭建VPN翻墙属于违法行为!)
- 确定保存
使用客户端进行连接
下载地址与服务端管理程序相同。
- 安装后点击虚拟适配器、新建虚拟适配器、给适配器取个名字、点击确定等待创建完成
- 点击添加新的VPN
- 填写名称、ip地址(域名也行)、端口选择上文设置的5555、选择上文创建的虚拟hub、填写虚拟hub的用户名密码。
- 点击确认、连接。此时会提示你在虚拟局域网中的ip地址,代表已经连接成功了。(注意windows需要关闭公用网络防火墙)
- 其他客户端也进行相同操作,完成后就可以相互ping通对方的局域网ip了。
使用L2TP进行连接
有时候我们会觉得每次都下载一个客户端进行连接太麻烦,又或者使用安卓、IOS没有相应客户端。此时,可以通过L2TP连接解决上述问题。
服务器端设置
- 注意若需要使用L2TP需要docker启动时映射500、4500端口的udp流量,防火墙请放行这两个端口,否则无法连接上。
- 登陆服务端管理工具,点击Ipsec/L2TP设置
- 启用L2TP功能、选择默认hub、设置预共享密钥。
如有创建了多个虚拟hub,当使用L2TP登录非默认hub时,需要在用户名后@hub名,如:laoyutang@test,默认hub则不需要
- 点击确认保存
客户端连接
PC端(windows举例)
- 打开系统设置-网络和Internet-VPN-添加VPN
- 如图依次填写相关信息,注意VPN类型选择使用预共享密钥的L2TP/IPsec,预共享密钥为上一步设置的密钥。账号密码为hub用户名密码。
- 特别注意,添加VPN后不要直接点击连接,因为设置虚拟hub时我们关闭了NAT并且删除了hub的默认网关,此时我们连接上hub所有网络流量转发到服务端,服务端又没有指定网关,将会导致断网,需要设置虚拟网卡不使用远程网关!再次提醒,国内搭建VPN翻墙属于违法行为!
- 打开系统设置-网络和Internet-高级网络设置-更多适配器选项
- 选择L2TP的适配器-属性-网络-IPv4-属性-高级-去勾在远程网络上使用默认网关。
- 一路确定返回即可
- 连接VPN,双击L2TP的适配器,在详细信息中查看局域网IP地址。
手机端(安卓举例)
- 设置-更多连接-VPN。
- 与PC端相同,依次填写相关信息,连接即可。
Tips
本文介绍了Softether服务端的docker搭建方式,并且使用softether创建了一个虚拟局域网,读者可以根据需要选择客户端方式或者L2TP方式进行连接。后续作者也会继续带来softether其他功能的使用。