SoftEtherVPN搭建
<p>[TOC]</p>
<h5>关于SoftEtherVPN</h5>
<p><a href="https://www.softether-download.com/cn.aspx">SoftEtherVPN</a>是开源跨平台,多重协议的虚拟专用网方案,是openvpn最佳替代方案,比openvpn要快,其L2TP VPN与windows、mac、ios和android高度兼容;SoftEtherVPN本身还具有ssl-vpn协议,可以穿透任何类型的防火墙。</p>
<h5>使用docker搭建</h5>
<ul>
<li>使用部署镜像生成服务配置文件,并拷贝到本地目录;</li>
</ul>
<pre><code class="language-bash"># 生成用户账户配置文件;
sudo docker run --rm siomiz/softethervpn:latest gencert > softethervpn_env
# 设置时区和连接账户;
# softethervpn_env
TZ=Asia/Shanghai # 设置时区
PSK=emVyb3NreUAyMDIyCg== # 预共享密钥,设置复杂一点就好
USERS=user1:admin@123;user2:admin@456 # 账户:密码</code></pre>
<ul>
<li>添加compose文件;</li>
</ul>
<pre><code class="language-bash"># 端口说明
# -p 500:500/udp -p 4500:4500/udp;
# -p 1701:1701/tcp 用于 L2TP/IPSec(默认);
# -p 1194:1194/udp 用于 OpenVPN;
# -p 443:443/tcp 用于通过 HTTPS 的 OpenVPN;
# -p 5555:5555/tcp 用于 SoftEther VPN(由供应商推荐);
# -p 992:992/tcp 也可作为替代方案;
# docker-compose.yml
version: "3.9"
services:
vpn:
image: "siomiz/softethervpn:alpine"
privileged: true
cap_add:
- NET_ADMIN
volumes:
- "./vpnserver/server_log:/usr/vpnserver/server_log"
- "./vpnserver/packet_log:/usr/vpnserver/packet_log"
- "./vpnserver/security_log:/usr/vpnserver/security_log"
env_file:
- "./softethervpn_env"
ports:
- 500:500/udp
- 4500:4500/udp
- 1701:1701/tcp
- 1194:1194/udp
- 5555:5555/tcp</code></pre>
<h5>使用客户端连接</h5>
<ul>
<li>使用l2tp进行拨号上网,windows下支持直接l2tp连接到vpn服务器,打开设置-->网络;</li>
</ul>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=8938ebf2f578dc4cb28b77f8b6849346" alt="" /></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=6daeee70016b74ec04296690cb5f797f" alt="" /></p>
<ul>
<li>保存后,点击连接到VPN服务;</li>
</ul>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=c8c1facf3f4c2578fd07021b1783325e" alt="" /></p>
<ul>
<li>此时连接到vpn后会无法上公网,是因为所有请求都走了vpn出去,打开控制面板。找到vpn使用的网卡,将如下选项去掉即可;</li>
</ul>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=4218dfef8324596cfa9b596ef7edc659" alt="" /></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=5e5e1e14cf58d9ecc6f739f73675a2bd" alt="" /></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=ca845a5037cb7951017fcf0b1e37bbb1" alt="" /></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=ff5ee4c9230a758c0b1049938d27b6c4" alt="" /></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=34c709a5f6019b52fbad529176450154" alt="" /></p>
<ul>
<li>保存后重新连接vpn,此时可以正常访问公网;然后设置主机访问哪些网段需要走vpn出去,不然都会走到公网出口;</li>
</ul>
<pre><code class="language-bash"># -p 表示添加永久路由,192.168.30.11是你vpn网卡连接后分配的IP地址
route add 192.168.10.0 mask 255.255.255.0 192.168.30.11 -p
# 如果重新连接vpn分配ip变了,删除之前的再添加新的路由
route remove 192.168.10.0 mask 255.255.255.0 192.168.30.11 -p</code></pre>
<ul>
<li>测试访问vpn服务所在内网的服务器;</li>
</ul>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=a5531c8a8a0b344dc865906d5110fcb4" alt="" /></p>