我在普通路由器后面安装了一个 VPN 客户端路由器。我的笔记本电脑硬连线到 VPN 路由器,并通过无线连接到普通路由器。我想限制用户 1 仅通过 VPN(有线连接)访问网络。但是,我想允许用户 2 通过有线或无线访问。有没有简单的方法可以做到这一点?TIA
答案1
我发现最简单的方法是(在sudo
有能力的帐户上)创建一个 Systemd 服务文件,其中/etc/systemd/system/
包含以下内容(用各自的值替换<user>
和):<wireless interface>
[Unit]
Description=Disable wireless for user <user>
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables -A OUTPUT -o <wireless interface> -m owner --uid-owner <user> -j DROP
ExecStop=/usr/sbin/iptables -D OUTPUT -o <wireless interface> -m owner --uid-owner <user> -j DROP
RemainAfterExit=yes
[Install]
WantedBy=default.target
将其命名为disable-wireless-<user>.service
,然后运行,sudo systemctl daemon-reload
接着运行sudo systemctl enable --now disable-wireless-<user>
。
您可以通过该命令找到系统上的网络接口列表ip link
,该命令将显示如下内容:
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether ??:??:??:??:??:?? brd ??:??:??:??:??:??
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether ??:??:??:??:??:?? brd ??:??:??:??:??:??
在这种情况下,wlp3s0
将是无线接口。