AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1168920
Accepted
slowcoder
slowcoder
Asked: 2024-12-16 09:18:36 +0800 CST2024-12-16 09:18:36 +0800 CST 2024-12-16 09:18:36 +0800 CST

我如何保持我的规则的优先性?

  • 772

我在服务器上运行了以下代码,这样即使服务器连接到 VPN,我也可以通过 SSH 进入服务器。以下代码在启动后作为服务运行。

ip addr add 192.168.1.113 dev enp1s0 label enp1s0:0
ip rule add from 192.168.1.113 table 402
ip route add default via 192.168.1.1 dev enp1s0:0 table 402

这适用于 openvpn,但不适用于 wireguard,因为我的 wireguard 客户端在上述规则前面添加了一些规则。

0:  from all lookup local
32761:  from all lookup main suppress_prefixlength 0
32762:  not from all fwmark 0xca6c lookup 51820
32763:  from 192.168.1.113 lookup 402
32766:  from all lookup main
32767:  from all lookup default

如果我在 wireguard 连接后添加规则from 192.168.1.113 lookup 402,那么我就可以通过 SSH 进入服务器。所以我认为这是一个优先级问题。

32763即使在 wireguard 连接并添加了那几条规则( 32761, )之后,如何确保我的规则( )仍然保持优先权?32762

失败的解决方案:

我了解到左边的数字是优先级。然后我尝试将规则的优先级调低。

ip rule add from 192.168.1.113 table 402 prio 300

.. 但是在我连接到 wireguard vpn 之后,wireguard 客户端只是将他们的规则优先级放在我的规则之下299,然后298。

298:    from all lookup main suppress_prefixlength 0
299:    not from all fwmark 0xca6c lookup 51820
300:    from 192.168.1.113 lookup 402

有什么办法可以防止这种情况发生吗?我想我可以PostUp在 wireguard conf 文件中放置一个命令来改变优先级,但我觉得必须有一个更干净的解决方案。

routing
  • 1 1 个回答
  • 55 Views

1 个回答

  • Voted
  1. Best Answer
    larsks
    2024-12-17T05:59:10+08:002024-12-17T05:59:10+08:00

    路由规则的操作由脚本执行;您可以在此处wg-quick查看相关部分。由于它添加规则时没有设置明确的优先级,因此它们将始终添加到表中任何现有规则的“下方”。

    您需要确保仅在配置接口和路由表后才 添加自定义规则wg-quick。您可以通过将自定义配置移至后续挂钩来实现这一点。将PostUp指令添加到接口配置文件中:

    [Interface]
    ListenPort = 50001
    PrivateKey = ...
    PostUp = sh /etc/wireguard/scripts/example-preup.sh %i
    

    (%i将被替换为接口名称。)

    这将导致wg-quick在打开界面后执行给定的命令。在您的PostUp脚本中(这里是/etc/wireguard/scripts/example-postup.sh,但可以在任何地方),添加您的自定义规则。例如:

    #!/bin/sh
    
    ip rule add from 192.168.1.113 table 402 prio 300
    

    您可能需要添加另一个脚本(可能是PreUp或者可能是PostDown)来删除该自定义规则;否则下次打开界面时您会遇到同样的问题(因为在wg-quick添加自定义规则时该规则已经存在)。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • 将路由永久添加到 Solaris 10

  • Quagga 套件中的 ./configure --disable-zebra 代表什么?

  • 使用特定接口进行出站连接(Ubuntu 9.04)

  • Linux TC/策略路由工具

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve