ubuntu-18.04 - 将入站流量传递/重定向到专用网络内的客户端
问题描述
我有一个 IP 为 xxxx 的 OpenVPN 服务器 我有一个本地 IP 为 yyyy 的本地服务器,我想通过 VPN 从 Internet 访问其资源(http、ssh 等),因此我为服务器,它与 10.8.0.2 的 IP 连接所有本地服务器流量都通过 VPN,当我从本地服务器执行 whatsmyip 时,它显示 xxxx
我的问题是,如何在不使用 DDNS 的情况下从 Internet 访问本地服务器(所有入站请求的端口都应直接访问本地服务器),我有一个 VPN 服务器,因此它使事情变得更容易和更易于管理。例如,我可以为某些本地 wiki 页面设置 A 记录,创建本地电子邮件服务器并将其公开等。
我知道这与 IPTABLES、路由 natting 伪装等有关。有人可以帮忙吗?
解决方案
这工作得很好:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.8.0.2:443
eth0 是 OVPN 服务器的物理接口,因此我希望所有入站流量从 eth0(公共服务器 IP)到位于 10.8.0.2 上的客户端服务器,并且我必须指定我想要预先路由的每个端口。
我也使用端口 22 和 80 做到了这一点:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to-destination 10.8.0.2:22
所以每当我这样做
ssh root@VPN_IP -p 2222
它会将 ssh 转发到客户端服务器。
推荐阅读
- ruby-on-rails - Rails 6:我无法安装顺风
- c# - Gridview 行中的行单击和按钮单击处理的 Internet Explorer 问题
- python - 如何在 django 中计算时间
- google-my-business-api - Google My Business API 的测试/沙盒环境
- azure - 在 Azure 门户应用注册中公开 Azure DevOps API
- javascript - 验证密码强度的 Javascript 函数(带有特殊字符)
- r - R中的条件统计(首选dplyr解决方案)
- amazon-web-services - AWS STS Endpoints 仅适用于一个区域的一个子网。STS 连接在其他区域不起作用
- python - 有没有办法将 url 更改为 python 中的下一个 url
- r - 创建一个以美国州名作为输入并返回文本的函数