You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将Mikrotik Wireguard客户端设置为Linux笔记本的默认网关,以通过B国IP访问互联网

如何将Mikrotik Wireguard客户端设置为Linux笔记本的默认网关,以通过B国IP访问互联网

我来一步步帮你实现这个需求,分为Mikrotik路由器配置Linux笔记本配置两部分,确保每一步都清晰易懂:

一、Mikrotik端配置(关键是开启转发和设置NAT)

你的Mikrotik本身用B国公网IP上网,要让它成为笔记本的网关,必须先开启流量转发,再做源地址转换让流量能正常从B国ISP出去:

  • 首先开启IP转发功能(这是网关的核心要求):
    登录Mikrotik的CLI或者Winbox,执行命令:

    /ip settings set ip-forward=yes
    

    (如果用Winbox,直接到IP > Settings界面,勾选IP Forwarding选项即可)

  • 添加NAT伪装规则,让从Wireguard过来的笔记本流量,通过Mikrotik的公网接口出去时换成B国的公网IP:
    把命令里的<公网接口名称>换成Mikrotik连接B国互联网的实际接口(比如ether1pppoe-out1),10.10.7.0/24是你的Wireguard子网(如果子网不是这个,替换成实际的):

    /ip firewall nat add chain=srcnat action=masquerade src-address=10.10.7.0/24 out-interface=<公网接口名称>
    
  • 确认Wireguard peer配置正常:
    检查你的Mikrotik Wireguard peer设置,确保已经允许10.10.7.9/32(你的笔记本VPN IP)的流量接入——你之前能访问Mikrotik,这一步应该已经配置好了,不用额外修改。

二、Linux笔记本端配置(修改路由,避免Wireguard断连)

直接改默认路由会导致Wireguard连接断开(因为笔记本找不到A国的Wireguard服务器了),所以要先保留服务器的路由,再切换默认网关:

  • 先获取两个关键信息:

    • A国Wireguard服务器的公网IP(记为A_SERVER_IP
    • 笔记本本地网卡的默认网关IP(比如家里路由器的IP,记为LOCAL_GW)和网卡名称(比如wlan0eth0
  • 添加静态路由,让到A国服务器的流量走本地网卡,避免Wireguard断连:

    ip route add A_SERVER_IP via LOCAL_GW dev <本地网卡名称>
    

    举个例子:如果服务器IP是1.2.3.4,本地网关是192.168.1.1,网卡是wlan0,命令就是:

    ip route add 1.2.3.4 via 192.168.1.1 dev wlan0
    
  • 修改默认路由,让所有流量通过Wireguard发到Mikrotik的VPN IP(10.10.7.155):
    先删除原来的默认路由,再添加新的默认路由(<Wireguard接口名称>比如wg0):

    ip route del default
    ip route add default via 10.10.7.155 dev <Wireguard接口名称>
    
  • 测试验证:
    打开浏览器查询你的公网IP,应该显示B国的地址了。如果不行,用ip route show查看路由表是否正确,或者检查Mikrotik的NAT规则和IP转发是否生效。

  • 持久化配置(可选,重启后自动生效):
    编辑你的Wireguard配置文件(比如/etc/wireguard/wg0.conf),在[Interface]段添加以下内容,替换掉里面的占位符:

    PostUp = ip route add A_SERVER_IP via LOCAL_GW dev <本地网卡名称>; ip route del default; ip route add default via 10.10.7.155 dev <Wireguard接口名称>
    PostDown = ip route del A_SERVER_IP via LOCAL_GW dev <本地网卡名称>; ip route del default; ip route add default via LOCAL_GW dev <本地网卡名称>
    

    这样每次启动Wireguard时会自动设置路由,关闭时恢复原来的默认路由。

备注:内容来源于stack exchange,提问作者Matthai

火山引擎 最新活动