如何从具有活动 VPN 连接的 Windows 客户端通过 SSH 连接到 Wireguard 服务器?

如何从具有活动 VPN 连接的 Windows 客户端通过 SSH 连接到 Wireguard 服务器?

我在 Rocky 8.7 上安装了 Wireguard 服务器,当我连接到服务器时,我会将所有客户端流量路由到 Wireguard

这是来自安装脚本的引述,当然所有变量都已设置(并且一切运行良好)

Wireguard 服务器配置:

cat << EOF | sudo tee -a /etc/wireguard/${WG_INTERFACE}.conf
[Interface]
PostUp = wg set %i private-key /etc/wireguard/${WG_INTERFACE}.pk
Address = 10.0.0.1/32
ListenPort = ${WG_PORT}
[Peer]
PublicKey = ${WG_CLIENT_PUBLIC_KEY}
AllowedIPs = 10.0.0.2/32
EOF

Wireguard 客户端的配置:

cat << EOF >> ~/wg_client.conf
[Interface]
PrivateKey = ${WG_CLIENT_PRIVATE_KEY}
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = ${WG_SERVER_PUBLIC_KEY}
Endpoint = ${SERVER_IP}:${WG_PORT}
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF

流量重定向和防火墙的服务器设置:

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf 1>/dev/null
sudo firewall-cmd --zone=public --add-port=${WG_PORT}/udp --permanent
sudo firewall-cmd --zone=internal --add-interface=${WG_INTERFACE} --permanent
sudo firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=10.0.0.0/24 masquerade' --permanent

问题是:如何从具有活动 VPN 连接的 Windows 客户端通过 SSH 连接到 Wireguard 服务器?

答案1

目前我有一个可行的解决方案,但似乎不是最佳的

在客户端配置中,AllowedIPs = 0.0.0.0/0我添加了另一行,从 0.0.0.0/0 中减去 Wireguard 服务器的 IP 地址

为什么解决方案似乎不是最佳的?因为 IP 减法后,我得到了一行很长的行,不方便阅读

例如我的服务器 IP 地址是:100.100.200.200

对于 IP 减法,我必须使用特殊的子网计算器(例如:https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/)得到如下结果:

AllowedIPs = 0.0.0.0/2, 64.0.0.0/3, 96.0.0.0/6, 100.0.0.0/10, 100.64.0.0/11, 100.96.0.0/14, 100.100.0.0/17, 100.100.128.0/18, 100.100.192.0/21, 100.100.200.0/25, 100.100.200.128/26, 100.100.200.192/29, 100.100.200.201/32, 100.100.200.202/31, 100.100.200.204/30, 100.100.200.208/28, 100.100.200.224/27, 100.100.201.0/24, 100.100.202.0/23, 100.100.204.0/22, 100.100.208.0/20, 100.100.224.0/19, 100.101.0.0/16, 100.102.0.0/15, 100.104.0.0/13, 100.112.0.0/12, 100.128.0.0/9, 101.0.0.0/8, 102.0.0.0/7, 104.0.0.0/5, 112.0.0.0/4, 128.0.0.0/1

您知道其他更简单的解决方案吗?

相关内容