我曾在 SuperUser 上问过这个问题,但唯一的回复来自一个我无法理解的人
我在 Debian 12 主机上运行 WireGuard VPN 服务器,没有任何问题,监听特定的 UDP 端口,一切运行正常。我可以在 5G 等网络上通过手机 WireGuard 客户端进行连接,一切运行正常。
但是我想暂时允许某人访问该服务器,但限制他们只能访问我本地网络上的设备 192.168.0.x - 一旦他们连接到 VPN,就无法访问公共互联网,因此他们无法访问一般网站等。只需根据需要访问 192.168.0.x 上的设备
我只是一个家庭新手用户,尝试了以下一组命令:
iptables -I OUTPUT -d 192.168.0.0/16 -j ACCEPT; iptables -P OUTPUT DROP
iptables -A INPUT -p udp -m udp --dport ##### -j ACCEPT
iptables -A INPUT -p udp -m udp --sport ##### -j ACCEPT
其中 ##### 是与外界通信的正确监听端口。在主机上,通常似乎可以按预期工作 - 我可以与所有 192.168.0.0 设备通信,并且无法与该范围之外的任何设备通信 - 唯一的问题是,我也无法再通过 5G 连接到 ######,这是我之前工作的 VPN 监听端口。
任何帮助都将不胜感激,谢谢!
编辑:
另一个用户告诉我尝试 FORWARD,所以我尝试了这个但仍然没有变化,当从外部世界尝试时守护进程没有响应
iptables -I OUTPUT -d 192.168.0.0/16 -j ACCEPT; iptables -P OUTPUT DROP
iptables -A FORWARD -p udp -m udp --sport ##### -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport ##### -j ACCEPT
答案1
我认为以下是正确的
iptables -A FORWARD -s x.x.x.x -d 192.168.0.0/16 -j ACCEPT
iptables -A FORWARD -s x.x.x.x -j DROP
x.x.x.x
您为受限客户端分配的地址在哪里,该地址由您的 wireguard 服务器上的 allowedips 强制执行。
答案2
您可以访问本地网络内的设备,但无法访问互联网
iptables -I OUTPUT -d 192.168.0.0/16 -j ACCEPT
iptables -P OUTPUT DROP
此规则允许端口上的 WireGuard 流量传入
iptables -A INPUT -p udp --dport #### -j ACCEPT