我在两台 Linux 机器之间建立了一个 VPN ssh 隧道,使用这些说明。
以下以机器B作为服务器,A作为客户端。
我可以从 A ping 并从 B 网络中的任意计算机获得回复,所以一切似乎都运行良好。但是我似乎无法获得从 A 到 B 网络中 DNS 服务器的 DNS 请求的回复。我猜这是因为 UDP 是无状态的并且只允许回复?
- 情况确实如此吗?还是另有其他问题?
- 如果是这样,我该如何建立双向隧道?
- 如果我设置了双向隧道,我可以使用应用于 tun 接口的 iptables 来仅允许 DNS 返回吗?或者也许有更好的方法只允许 DNS?
答案1
文档指出“一旦运行此功能,就可以很容易地在 VPN 两端的两个网络之间路由流量。有关详细信息,请参阅下面的第一个参考链接。”
看看路由部分https://help.ubuntu.com/community/SSH_VPN其中给出了如何添加路线。
基本上,流量在机器 b 上重写并返回给它,但它不知道 A 端的网络情况,因此会丢弃流量。
答案2
转发无法正常工作,我使用了:
sudo sysctl net.ipv4.conf.default.forwarding=1
但是当我使用时它不起作用:
sudo sysctl net.ipv4.ip_forward=1
它确实有效,但不确定这两者之间到底有什么区别......