|
@@ -37,29 +37,37 @@ wg genkey | tee sprivatekey | wg pubkey > spublickey
|
|
wg genkey | tee cprivatekey | wg pubkey > cpublickey
|
|
wg genkey | tee cprivatekey | wg pubkey > cpublickey
|
|
|
|
|
|
# 获得服务器ip
|
|
# 获得服务器ip
|
|
-serverip=$(curl -4 icanhazip.com)
|
|
|
|
|
|
+serverip=$(curl -4 ip.sb)
|
|
|
|
|
|
# 生成服务端配置文件
|
|
# 生成服务端配置文件
|
|
echo "[Interface]
|
|
echo "[Interface]
|
|
# 私匙,自动读取上面刚刚生成的密匙内容
|
|
# 私匙,自动读取上面刚刚生成的密匙内容
|
|
PrivateKey = $(cat sprivatekey)
|
|
PrivateKey = $(cat sprivatekey)
|
|
|
|
+
|
|
# VPN中本机的内网IP,一般默认即可,除非和你服务器或客户端设备本地网段冲突
|
|
# VPN中本机的内网IP,一般默认即可,除非和你服务器或客户端设备本地网段冲突
|
|
Address = 10.0.0.1/24
|
|
Address = 10.0.0.1/24
|
|
|
|
+
|
|
# 运行 WireGuard 时要执行的 iptables 防火墙规则,用于打开NAT转发之类的。
|
|
# 运行 WireGuard 时要执行的 iptables 防火墙规则,用于打开NAT转发之类的。
|
|
# 如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称。
|
|
# 如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称。
|
|
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
|
|
+
|
|
# 停止 WireGuard 时要执行的 iptables 防火墙规则,用于关闭NAT转发之类的。
|
|
# 停止 WireGuard 时要执行的 iptables 防火墙规则,用于关闭NAT转发之类的。
|
|
# 如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称。
|
|
# 如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称。
|
|
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
|
|
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
|
|
|
|
+
|
|
# 服务端监听端口,可以自行修改
|
|
# 服务端监听端口,可以自行修改
|
|
ListenPort = 9999
|
|
ListenPort = 9999
|
|
|
|
+
|
|
# 服务端请求域名解析 DNS
|
|
# 服务端请求域名解析 DNS
|
|
DNS = 8.8.8.8
|
|
DNS = 8.8.8.8
|
|
|
|
+
|
|
# 保持默认
|
|
# 保持默认
|
|
MTU = 1420
|
|
MTU = 1420
|
|
|
|
+
|
|
[Peer]
|
|
[Peer]
|
|
# 公匙,自动读取上面刚刚生成的密匙内容
|
|
# 公匙,自动读取上面刚刚生成的密匙内容
|
|
PublicKey = $(cat cpublickey)
|
|
PublicKey = $(cat cpublickey)
|
|
|
|
+
|
|
# VPN内网IP范围,一般默认即可,除非和你服务器或客户端设备本地网段冲突
|
|
# VPN内网IP范围,一般默认即可,除非和你服务器或客户端设备本地网段冲突
|
|
AllowedIPs = 10.0.0.2/32" > wg0.conf
|
|
AllowedIPs = 10.0.0.2/32" > wg0.conf
|
|
|
|
|
|
@@ -68,27 +76,37 @@ AllowedIPs = 10.0.0.2/32" > wg0.conf
|
|
echo "[Interface]
|
|
echo "[Interface]
|
|
# 私匙,自动读取上面刚刚生成的密匙内容
|
|
# 私匙,自动读取上面刚刚生成的密匙内容
|
|
PrivateKey = $(cat cprivatekey)
|
|
PrivateKey = $(cat cprivatekey)
|
|
|
|
+
|
|
# VPN内网IP范围
|
|
# VPN内网IP范围
|
|
Address = 10.0.0.2/24
|
|
Address = 10.0.0.2/24
|
|
|
|
+
|
|
# 解析域名用的DNS
|
|
# 解析域名用的DNS
|
|
DNS = 8.8.8.8
|
|
DNS = 8.8.8.8
|
|
|
|
+
|
|
# 保持默认
|
|
# 保持默认
|
|
MTU = 1300
|
|
MTU = 1300
|
|
|
|
+
|
|
# Wireguard客户端配置文件加入PreUp,Postdown命令调用批处理文件
|
|
# Wireguard客户端配置文件加入PreUp,Postdown命令调用批处理文件
|
|
PreUp = start .\route\routes-up.bat
|
|
PreUp = start .\route\routes-up.bat
|
|
PostDown = start .\route\routes-down.bat
|
|
PostDown = start .\route\routes-down.bat
|
|
|
|
+
|
|
#### 正常使用Tunsafe点击connect就会调用routes-up.bat将国内IP写进系统路由表,断开disconnect则会调用routes-down.bat删除路由表。
|
|
#### 正常使用Tunsafe点击connect就会调用routes-up.bat将国内IP写进系统路由表,断开disconnect则会调用routes-down.bat删除路由表。
|
|
#### 连接成功后可上 http://ip111.cn/ 测试自己的IP。
|
|
#### 连接成功后可上 http://ip111.cn/ 测试自己的IP。
|
|
|
|
+
|
|
[Peer]
|
|
[Peer]
|
|
# 公匙,自动读取上面刚刚生成的密匙内容
|
|
# 公匙,自动读取上面刚刚生成的密匙内容
|
|
PublicKey = $(cat spublickey)
|
|
PublicKey = $(cat spublickey)
|
|
|
|
+
|
|
# 服务器地址和端口,下面的 X.X.X.X 记得更换为你的服务器公网IP,端口根据服务端配置时的监听端口填写
|
|
# 服务器地址和端口,下面的 X.X.X.X 记得更换为你的服务器公网IP,端口根据服务端配置时的监听端口填写
|
|
-Endpoint = $serverip:9009
|
|
|
|
|
|
+Endpoint = $serverip:9999
|
|
|
|
+
|
|
# 转发流量的IP范围,下面这个代表所有流量都走VPN
|
|
# 转发流量的IP范围,下面这个代表所有流量都走VPN
|
|
AllowedIPs = 0.0.0.0/0, ::0/0
|
|
AllowedIPs = 0.0.0.0/0, ::0/0
|
|
|
|
+
|
|
# 保持连接,如果客户端或服务端是 NAT 网络(比如国内大多数家庭宽带没有公网IP,都是NAT),
|
|
# 保持连接,如果客户端或服务端是 NAT 网络(比如国内大多数家庭宽带没有公网IP,都是NAT),
|
|
# 那么就需要添加这个参数定时链接服务端(单位:秒),如果你的服务器和你本地都不是 NAT 网络,
|
|
# 那么就需要添加这个参数定时链接服务端(单位:秒),如果你的服务器和你本地都不是 NAT 网络,
|
|
# 那么建议不使用该参数(设置为0,或客户端配置文件中删除这行)
|
|
# 那么建议不使用该参数(设置为0,或客户端配置文件中删除这行)
|
|
|
|
+
|
|
PersistentKeepalive = 25"|sed '/^#/d;/^\s*$/d' > client.conf
|
|
PersistentKeepalive = 25"|sed '/^#/d;/^\s*$/d' > client.conf
|
|
|
|
|
|
# 赋予配置文件夹权限
|
|
# 赋予配置文件夹权限
|
|
@@ -101,6 +119,7 @@ sysctl_config() {
|
|
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
|
|
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
|
|
sysctl -p >/dev/null 2>&1
|
|
sysctl -p >/dev/null 2>&1
|
|
}
|
|
}
|
|
|
|
+
|
|
# 开启 BBR
|
|
# 开启 BBR
|
|
sysctl_config
|
|
sysctl_config
|
|
lsmod | grep bbr
|
|
lsmod | grep bbr
|
|
@@ -120,5 +139,6 @@ systemctl enable wg-quick@wg0
|
|
wg
|
|
wg
|
|
|
|
|
|
# 以上配置文本只是参考文档使用,实际调用另一脚本生成配置
|
|
# 以上配置文本只是参考文档使用,实际调用另一脚本生成配置
|
|
|
|
+
|
|
# 一键 WireGuard 多用户配置共享脚本
|
|
# 一键 WireGuard 多用户配置共享脚本
|
|
wget -qO- https://git.io/fpnQt | bash
|
|
wget -qO- https://git.io/fpnQt | bash
|