通过VPN服务器公网IP在VPN客户端上访问Web服务器

通过VPN服务器公网IP在VPN客户端上访问Web服务器

我正在尝试使用 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

  1. 在机器 A 上安装 OpenVPN 服务器

    我更喜欢 Ubuntu 18.04 和 Nyr OpenVPN 安装程序脚本

    只需在终端运行此命令

    wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

  2. 假设您已经在机器 B 上设置了 apache 或 nginx,请确保它监听所有接口。

  3. 在机器 B 上安装 OpenVPN 客户端以连接到您的服务器!

    在终端运行此代码来安装 OpenVPN 客户端

    sudo apt-get install openvpn

  4. 我们现在需要配置机器 A 以将流量从公共 IP 路由到 OpenVPN 内部 IP 地址,如果您使用 Nyr 脚本,则机器 B 将被分配地址 10.8.0.2。

让我们配置路由!

  1. 启用 ufw 防火墙
  2. sudo ufw enable ssh && sudo ufw enable
  3. sudo nano /etc/default/ufw
  4. 将“DEFAULT_INPUT_POLICY”和“DEFAULT_FORWARD_POLICY”更改为 ACCEPT。保存并关闭文件。
  5. sudo nano /etc/ufw/sysctl.conf
  6. 取消注释 n“et/ipv4/ip_forward=1”。保存并关闭文件。
  7. sudo nano /etc/ufw/before.rules
  8. 在“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。

相关内容