我正在尝试将 Linux 上的 openvpn 连接共享到我的 PC。我的 wan 连接通过 wlan0 进行,而我的 vpn 在 tun0 上。Eth0 是插入笔记本电脑的 cat5 电缆。我无法桥接 tun0,所以我不知道如何共享连接。顺便说一下,我的 vpn ip 是 10.8.0.3。有人能帮我吗?我也试过用 iptables 转发,但也没用。
答案1
有趣的问题。我们称 PC1 为运行 OpenVPn 的 PC,称 PC2 为通过电缆连接到 PC1 的 PC。
在 PC1 上,插入电缆后:
ip link set dev eth0 down
ip addr flush dev eth0
ip addr add 10.8.0.5/24 dev eth0
ip link set dev eth0 up
ip route add 10.8.0.6/32 dev eth0
前两个命令纯粹是出于谨慎。
在 PC2 上:
ip link set dev eth0 down
ip addr flush dev eth0
ip addr add 10.8.0.6/24 dev eth0
ip link set dev eth0 up
然后,仍然在 PC2 上,
ip route add default via 10.8.0.3
返回 PC1:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
如果此方法不能立即奏效,请不要表现得像这家伙,尝试通过报告错误信息和其他方式来帮助自己。
编辑:
如果您想通过 OpenVPN 转发受限制机器的通信,则只需设置一个 dhcp 服务器来处理 PC1 和 PC2 之间的通信。我将给出 Debian 系列 PC 的说明,它们在其他发行版上类似(尽管不完全相同)。
sudo apt-get install isc-dhcp-server
然后编辑 /etc/default/isc-dhcp-server 并修改 INTERFACES 行使其如下所示:
INTERFACES="eth0"
如果 eth0 是连接 PC2 的电缆接口。否则,请相应地修改 eth0。
现在编辑 /etc/dhcp/dhcpd.conf 并引入以下行:
option domain-name "mysecondlan.lan";
option domain-name-servers 8.8.8.8, 8.8.4.4;
subnet 192.168.123.0 netmask 255.255.255.0 {
range 192.168.123.1 192.168.123.10;
option routers 192.168.123.1;
}
现在重启服务
sudo service isc-dhcp-server restart
然后你就大功告成了。请记住,你可能必须使用交叉以太网电缆,特别是当你连接到 PC 时。