四、通过Windows客户端管理工具来配置v*n服务器

这里我下载的免安装版,直接右键解压即可
2020-02-23T15:27:34.png
双击运行vpnsmgr.exe,进行远程的管理,这里我们选择新设置来填写服务器信息
2020-02-23T15:28:20.png
在新建栏中输入服务器的ip和设置的端口,右下角填写刚刚设置的密码,点确定
2020-02-23T15:28:39.png
回到主界面,点击连接
2020-02-23T15:29:22.png
连接成功后,会弹出简单安装界面,这里选择第一个远程访问,然后下一步即可,虚拟HUB名像之前一样默认就好
2020-02-23T15:29:39.png
然后会弹出动态dns功能,这里暂时不用,直接点击退出即可
然后弹出协议设置窗口,这里勾上第一个,下面在设置一个预共享密钥即可,共享秘钥一会用来windows连接服务器使用
2020-02-23T15:30:17.png
之后会弹出一个VPN Azure设置,这里暂时用不到,直接禁用即可
2020-02-23T15:31:06.png
接下来创建新用户,输入用户名,密码,选择密码验证,点击确定
2020-02-23T15:31:35.png
创建用户名后,直接返回到管理页面,点击管理虚拟HUB
2020-02-23T15:31:54.png
点击虚拟NAT和虚拟DHCP服务器
2020-02-23T15:32:29.png
这里直接禁用掉SecureNAT,因为SecureNAT,里面的虚拟NAT功能非常吃cpu,这里我开启后直接把我的服务器搞死了,客户端连接上后,cpu直接100%占用,服务器上的其他程序直接假死,建议服务器性能不是很强的不要使用这个选项,如果不开虚拟NAT的话,客户端就连接不上外网了,不过可以联机打游戏,这里我使用的是本地网桥,对cpu的占用可以忽略不计
2020-02-23T15:33:29.png

五、配置本地网桥

5.1 添加本地网桥
使用本地网桥首先需要:管理虚拟HUB-->虚拟NAT和虚拟DHCP服务器-->禁用SecureNAT
然后在本地网桥里面添加新的tap设备 soft
2020-02-23T15:44:46.png
添加本地网桥后,回到服务器终端
输入命令 ifconfig tap_soft
如果可以查看到tap_soft网卡信息,则可继续进行下一步,否则看看上面是不是哪一步出错了
2020-02-24T04:11:30.png

5.2 安装DNSmasq
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,我们使用DNSmasq提供DHCP服务来组建虚拟局域网
使用yum进行安装
yum install dnsmasq -y
安装完毕后进行配置
编辑DNSmasq的配置文件
vim /etc/dnsmasq.conf
添加如下配置

#本地网桥名称
interface=tap_soft
#绑定网卡
bind-interfaces
#设置DHCP分配的地址范围和时间
dhcp-range=tap_soft,192.168.8.10,192.168.8.100,12h
#设置网关的地址
dhcp-option=tap_soft,3,192.168.8.1
#开启DHCP
dhcp-authoritative
#尝试不分配重复的ip地址
dhcp-no-override
#完全禁用 DNS 功能,仅使用 DHCP/TFTP
port=0
#设置DNS服务器
dhcp-option=option:dns-server,114.114.114.114,8.8.8.8

至此DNSmasq的安装和配置就完成了

5.3 开启ip_forward数据包转发

#开启ip_forward
vim /etc/sysctl.d/ipv4_forwarding.conf
#修改net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
执行同步
sysctl -p

查看设置是否成功:
cat /proc/sys/net/ipv4/ip_forward
输出为1则开启成功

5.4 配置防火墙
Win10我们使用L2TP协议连接服务器,所以需要再服务器上开启500和4500端口的udp访问权限

firewall-cmd --zone=public --add-port=500/udp --permanent 
firewall-cmd --zone=public --add-port=4500/udp --permanent 

重新载入防火墙
firewall-cmd --reload

这里还需要配置防火墙来让本地网桥能够访问到外网,这里需要操作的是iptables,所以我直接写成脚本方便配置

#下载脚本到 /root/vpn 目录下
mkdir /root/vpn
wget https://static.ffis.me/typecho/uploads/2020/02/49939846.shell && mv 49939846.shell /root/vpn/softether-iptables.sh
#修改脚本中的相关配置信息
#赋予脚本可执行权限
chmod +x /root/vpn/softether-iptables.sh

你也可以自己创建脚本
脚本信息如下:

#!/bin/bash

# 相关配置信息
# 网关地址
TAP_ADDR=192.168.8.1
# 本地网桥名称
TAP_INTERFACE=tap_soft
# 虚拟子网IP
VPN_SUBNET=192.168.8.0/24
# 主机的网络卡名称
NET_INTERFACE=eth0
# 网卡 IP地址(注意:非服务器ip地址,使用ip addr命令查看网卡上面的ip地址,我的是腾讯云的内网ip地址)
VPNEXTERNALIP=10.105.77.66
#
#刷新当前 iptables 规则
iptables -F && iptables -X
#刷新 iptables 中 nat 表的 POSTROUTING 中的规则
iptables -t nat -F POSTROUTING
# 给本地网桥分配ip地址
/sbin/ifconfig $TAP_INTERFACE $TAP_ADDR
#
# 通过 $NET_INTERFACE 接口转发来自 VPN_SUBNET 的所有VPN流量,以传出数据包。
iptables -t nat -A POSTROUTING -s $VPN_SUBNET -j SNAT --to-source $VPNEXTERNALIP
#
# 允许 VPN接口 来访问外网
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# 
iptables -A INPUT -s $VPN_SUBNET -m state --state NEW -j ACCEPT 
iptables -A OUTPUT -s $VPN_SUBNET -m state --state NEW -j ACCEPT 
iptables -A FORWARD -s $VPN_SUBNET -m state --state NEW -j ACCEPT

至此,本地网桥的配置基本就完成了,下面将SoftEthe注册为系统服务,便于统一管理