我正在尝试使用 VPN 连接 (openvpn) 访问在防火墙后面的 PC 上运行的 Web 服务器,该防火墙不受我管理。基本上,我想使用我的 VPN 服务器的公共 IP 来访问防火墙后面的远程 PC 上的 Web 服务器。
如图所示,http://193.105.1.1:8085将显示托管在 192.168.1.1:8080 的网站
如果这个问题已经有人回答了,抱歉。我尝试搜索类似的东西,但实际上我不知道该搜索什么。
答案1
这很简单!
为了方便起见,我们考虑机器 A - 193.105.1.1 和机器 B - 192.168.1.1
在机器 A 上安装 OpenVPN 服务器
我更喜欢 Ubuntu 18.04 和 Nyr OpenVPN 安装程序脚本
只需在终端运行此命令
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
假设您已经在机器 B 上设置了 apache 或 nginx,请确保它监听所有接口。
在机器 B 上安装 OpenVPN 客户端以连接到您的服务器!
在终端运行此代码来安装 OpenVPN 客户端
sudo apt-get install openvpn
我们现在需要配置机器 A 以将流量从公共 IP 路由到 OpenVPN 内部 IP 地址,如果您使用 Nyr 脚本,则机器 B 将被分配地址 10.8.0.2。
让我们配置路由!
- 启用 ufw 防火墙
sudo ufw enable ssh && sudo ufw enable
sudo nano /etc/default/ufw
- 将“DEFAULT_INPUT_POLICY”和“DEFAULT_FORWARD_POLICY”更改为 ACCEPT。保存并关闭文件。
sudo nano /etc/ufw/sysctl.conf
- 取消注释 n“et/ipv4/ip_forward=1”。保存并关闭文件。
sudo nano /etc/ufw/before.rules
在“COMMIT”行后的行末添加以下内容
*自然
-F
:预路由接受 [0:0]
-A PREROUTING -i eth0 -d 193.105.1.1 -p tcp -m multiport --dports 23:65535 -j DNAT --to-destination 10.8.0.2
-A POSTROUTING -s 10.8.0.0/24 !-d 10.8.0.0/24 -j MASQUERADE
犯罪
将 eth0 更改为您的网络接口名称。
保存并重启两台服务器!通过 OpenVPN 客户端将机器 B 连接到机器 A。