简单的 DNS 或仅重定向几个名称

简单的 DNS 或仅重定向几个名称
  • PC1 通过 VPN 连接到服务器 1(s1)
  • s1 通过 VPN 隧道连接到 pc1,并通过 ssh 连接到 s2。有透明代理和 iptables 规则,它们从 VPN 获取流量并推送到 ssh SOCKS5。
  • s2 在本地局域网中与一些托管页面的服务器相连,例如:
  • s3:app1.名称_1.work.com app2.名称_1.work.com
  • s4:app1.名称_2.work.com app2.名称_2.work.com

我想要的是,在 PC1 上的 Web 浏览器中输入:app1.name_1.work.com 后,即可访问此网站。现在我只需输入 IP 地址即可完成此操作。

编辑 pc1 上的 /etc/hosts 可能会解决问题 - 但我不能这样做。编辑 s1 上的 /etc/hosts - 没有帮助,s2 上的 /etc/hosts 包含所有必要的条目,但也不能解决这个问题。我正在寻找一些简单的解决方案,可能是一些 iptables 链,或者非常简单的 DNS。你有什么想法吗?

答案1

如果您的所有流量都通过 VPN,您只需将 /etc/resolv.conf 中的辅助 DNS 更改为指向服务器 Lan 使用的 DNS 服务器。这样,您的浏览器就会知道在哪里查找 S1 或 S2 服务。

如果只有部分流量通过 VPN,您的设置与我的类似。我的大部分流量通过本地局域网,但一些请求被重定向到另一个大陆的公司服务器。运行我的 VPN 客户端后,我必须运行以下脚本才能使其正常工作:

ip route add xx.xx.0.0/8 dev ppp0
ip route add 192.168.0.0/16 dev ppp0
ip route add xx.xx.92.151 dev ppp0
ip route add xx.xx.92.137 dev ppp0
vpn="`ifconfig | grep -A1 ppp | grep inet | awk '{ print $2 }' | awk -F":" '{print $2}'`"
sudo route delete default gw $vpn

PS:我当然已经把我公司的IP替换成XX了。

相关内容