![如何设置 VPS 服务器以仅允许通过 VPN 从外部访问](https://linux22.com/image/1504254/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20VPS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%A5%E4%BB%85%E5%85%81%E8%AE%B8%E9%80%9A%E8%BF%87%20VPN%20%E4%BB%8E%E5%A4%96%E9%83%A8%E8%AE%BF%E9%97%AE.png)
我不确定我的标题是否足够清楚,所以我将尝试解释我想要达到的目的:
我希望能够仅通过 VPN 访问(即受限访问)来访问运行服务的 VPS 服务器(如私人 wiki、私人论坛和一些私人网站)。我不希望我的服务被 VPN 用户以外的任何人访问。
但是我想让 VPS 能够自己访问网络:在 VPS 上运行的脚本应该能够获取网络上的信息。
有什么解决方案?
谢谢!
答案1
这应该可以做到:
# for ssh access, in case you want to manage your VPS via ssh
iptables -A INPUT -i eth0 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m state --state NEW,ESTABLISHED --sport 22 -j ACCEPT
# for openvpn
iptables -A INPUT -i eth0 -p udp -m state --state NEW,ESTABLISHED --dport 1194 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp -m state --state ESTABLISHED --sport 1194 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
# for web
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
确保调整接口名称和端口号。另请参阅 C) 来自这里作为如何不锁定你的 VPS 的示例。