为网络接口卡分配多个 ip,以便通过 ubuntu 中的 vpn 路由一些程序

为网络接口卡分配多个 ip,以便通过 ubuntu 中的 vpn 路由一些程序

我有一台家庭服务器,上面运行着几个带有 Web 界面的程序。

我想从本地网络外部访问所有这些 Web 界面。

我还有一个程序想通过 vpn 来访问。

但是我的 vpn 只允许转发一个端口,因此我无法从网络外部通过 vpn 访问我的所有 Web 界面。

但是这个程序允许我将其绑定到 ipv4 地址。

所以我想要做的是以某种方式在我的本地网络上给我的计算机一个第二个 ip,让其中一个 ip 上的流量通过我的 vpn,让流量默认通过非 vpn ip,并将一个敏感程序绑定到 vpn 连接接口。

我目前有一个解决方法,即运行一个虚拟机,其中有一个敏感程序,并通过 vpn 连接,但这会浪费资源并且有一个缺点。这个敏感程序也有一个 Web 界面,目前无法从我的本地网络之外访问。但如果我能够拥有不同的 IP 地址,我应该能够将 Web 界面绑定到非 vpn,但通过 vpn 传输数据。关于如何做到这一点有什么想法,或者也许有更简单的方法来解决我的问题?

答案1

基本上,您可以在命令行中配置虚拟网络接口(无需 NetworkManager):

$ ifconfig eth0:1 192.168.177.52

如果您不使用 NetworkManager,您可以在 /etc/network/interfaces 中创建附加设备,并在接口名称后附加 :1、:2 等,例如 eth0,然后是 eth0:1、eth0:2 等。这些将通过 ifconfig 显示。

如果您说“Ubuntu”,我猜您正在使用 NetworkManager。通过使用 KDE 或 GNOME 的任何图形工具或通过编辑文件 /etc/NetworkManager/system-connections/YOURLANCONNECTION,您可以附加多个 IP 地址。

我在这里向您展示我的一段摘录(它是用 GNOME nm-applet 生成的):

[ipv4]
method=manual
dns=194.165.52.198;194.165.52.199;10.21.65.8;
dns-search=
address1=192.168.177.50/24,192.168.177.1
address2=10.21.65.206/24
address3=10.21.70.206/24
route1=192.168.10.0/24,192.168.177.1,1
route2=192.168.177.0/24,192.168.177.1,1
route3=10.21.65.0/24,0.0.0.0,1
ignore-auto-routes=true
ignore-auto-dns=true

如您所见,我的 PC 在同一个接口上有三个不同的 IPv4 地址。这些接口未通过 ifconfig 列出。

相关内容