我对于我所问的问题已经感到很抱歉,但是我找不到合适的关键词。
我有一个带有 git、主页等的服务器。现在我刚刚安装了 openvpn,它运行良好(除了有时我的 isp 出现 - dns 泄漏?!)
但我想知道如何做这样的事情:我的电脑(没有公共 ipv4)--->我的服务器(公共 ipv4)-->互联网。
假设我有一台 Raspberry Pi,并想将服务器用作某种网关(?),用于托管在 Pi 上的一些主页。(仅作为用例 - 请不要建议我在实际服务器上执行此操作)
总而言之,如果您能提供一些我必须知道的关键词,以及关于该一般主题的一些有用链接,我将不胜感激。我真的很想早点了解这些内容,因为我以后会在大学(学习计算机科学)处理这些内容。
当我必须“google” iptables 来解决这个问题时,我是对的吗?
提前致谢
我仍然对这些初学者的问题感到抱歉
答案1
使用 ddns 反向代理到非标准端口(我喜欢谷歌在其注册商上提供的免费 ddns)或 vpn 甚至 tunnelbroker.net ipv6 隧道(您将获得一个可用于后端的静态 ipv6 块)
Nginx 在这方面做得很好,但您可以使用 haproxy、Apache、F5、A10 等...
如果您有多个公共 IP,您可以进行 ssh 隧道或 iptables。
答案2
如果你想利用 VPN 隧道将流量从你的服务器重定向到客户端(Raspberry Pi),这很容易实现,使用iptables
。你需要定义 2 条规则,一条叫做DNAT
(目标网络地址转换),将到达您服务器的给定端口的互联网流量重定向到客户端的 VPN IP 地址和端口,另一个SNAT
(源网络地址转换),它使用服务器的 IP 掩盖客户端的 IP,并将答案发送回互联网。
您根本不需要任何 ddns,服务器不需要知道客户端的 IP 地址,因为 vpn 连接是通过您的静态 IP 从客户端建立的。
您需要启用IP 转发在服务器上并定义使用 OpenVPN 配置进行路由。
官方文档
相关答案
- DNAT 用于端口转发, 看:
Usual DNAT port forwarding rule for comparison
- OpenVPN 的 SNAT + IP 转发, 看:
Enable IP forwarding
,Configuring NAT
- 使用 ccd 将静态 vpn IP 推送到客户端, 看:
Add a custom client config file