我只想让一个程序通过我存储在的wireguard 配置运行/etc/wireguard/config.conf
,而所有其他程序通过正常的IP 地址运行。
我在路由上的wireguard use 中找到了此页面,它建议使用命名空间,但是当我尝试运行某些命令时,例如
sudo ip link set wlp2s0 netns physical
RTNETLINK answers: Invalid argument
Run Code Online (Sandbox Code Playgroud)
建议这不能通过 arch linux 来完成。有没有人找到一种方法让特定程序通过wireguard运行?
我在另一台机器上尝试了上述教程,在尝试加载我的wireguard配置时出现以下错误。
wg setconf wgvpn0 /etc/wireguard/my_vpn.conf
:格式无效,但使用时相同的配置可以完美运行wg-quick up
顺便说一句,有人知道 Wireguard 的问题跟踪系统吗?我提交到他们的邮件列表的问题不公开。
从OP的问题中提供的wireguard.com链接,特别是在新命名空间解决方案中,它解释了如何使用以太网和无线示例移动物理接口,大胆强调我的:
Run Code Online (Sandbox Code Playgroud)# ip netns add physical
现在我们
eth0
进入wlan0
“物理”命名空间:Run Code Online (Sandbox Code Playgroud)# ip link set eth0 netns physical # iw phy phy0 set netns name physical
(请注意,必须使用
iw
并指定物理设备来移动无线设备phy0
。)
如前所述,OP 似乎读取了第一个ip link set ... netns
命令,但没有看到无线设备需要第二个命令。
iw
的手册页很少,但iw --help
包括:
Run Code Online (Sandbox Code Playgroud)phy <phyname> set netns { <pid> | name <nsname> } Put this wireless device into a different network namespace: <pid> - change network namespace by process id <nsname> - change network namespace by name from /run/netns or by absolute path (man ip-netns)
某些驱动程序可能尚不与网络命名空间兼容。其工作需要此输出:
$ sudo iw phy0 info|grep netns
* set_wiphy_netns
Run Code Online (Sandbox Code Playgroud)
假设只有一个简单的无线设备,通过其对应设备wlp2s0
进行处理,因此根本不会出现在命令中。必须使用这个:iw
phy0
sudo iw phy phy0 set netns name physical
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3777 次 |
最近记录: |