OpenVPN 服务器无法 ping 通过以太网连接到客户端笔记本电脑的设备

OpenVPN 服务器无法 ping 通过以太网连接到客户端笔记本电脑的设备

我在 Linux 虚拟机(运行 Ubuntu 20.04 的 Google Cloud Compute Engine 实例)上有一个 OpenVPN 服务器。

我的办公室里有一台 Linux 笔记本电脑(运行 Ubuntu 20.04)。它通过无线方式连接到我的办公室路由器以访问互联网。我将这台笔记本电脑连接到 OpenVPN 服务器,因此现在它充当 VPN 客户端。我已通过以太网端口将 PLC(可编程逻辑控制器)连接到我的笔记本电脑。

我有另一台台式机(Windows PC),也连接到 OpenVPN 服务器。因此,它充当第二个 VPN 客户端。

  • VPN 服务器 (Ubuntu 虚拟机) 的 IP 地址:10.8.0.1
  • VPN 客户端 1(Ubuntu 笔记本电脑)的 IP 地址:10.8.0.2
  • VPN 客户端 2 (Windows PC) 的 IP 地址:10.8.0.3
  • 连接到 Ubuntu 笔记本电脑的 PLC 的 IP 地址:10.0.0.60

目标是能够从 Ubuntu 服务器(虚拟机)或 Windows PC(客户端 2)ping PLC。

据我了解,它们位于不同的子网中,因此我将 Ubuntu 笔记本电脑配置为 VPN 连接 (tun0) 和以太网端口 (eno1) 之间的网关。以下是我的'ifconfig输出中与这些适配器相对应的详细信息:

tun0

eno1

我执行了以下命令来实现网关功能:

sudo ip addr add 10.0.0.1/24 dev eno1
sudo iptables -A FORWARD -o tun0 -i eno1 -s 10.0.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
(And uncommented net.ipv4.ip_forward=1 from /etc/sysctl.conf)

我仍然无法从任何其他机器(VM 或 Windows PC) ping 我的 PLC。

我对网络不太熟悉。因此,如果我遗漏了 Ubuntu 笔记本电脑或虚拟机上的其他配置,请告诉我。如能得到任何帮助,我将不胜感激。

答案1

您必须通过 openvpn 服务器在笔记本电脑上配置 openvpn 网关设置。服务器配置文件中有示例,请查找“Thelonious”

本质上,您需要在服务器上创建一个文件,/etc/openvpn/ccd其名称在/etc/openvpn/openvpn-status.log客户端连接时显示。在该文件中添加iroute 10.0.0.0 255.255.255.0。这应该将客户端配置为网关。

您还需要在 openvpn 服务器配置文件中启用 ccd 位置、添加路由并允许客户端到客户端通信。查看配置文件注释,它们非常好,应该涵盖您需要的一切。

相关内容