笔记 | 内网服务器通过wifi穿透,设置流量走向

仅作为自己笔记查看,无任何参考价值

ubuntu服务器插着内网的网线,为内网提供服务,然后我还有一台用来做穿透的路由器通过发射wifi来连接服务器。如果拔掉内网网线,那么我在外网可以通过路由器访问它,一旦插上内网的网线,我在外面就不通了。

  1. 路由优先级 :由于有两个默认路由,eno1(内网)和 wlp2s0(外网)都有默认路由,但它们的 metric 值不同。其中 eno1 的 metric 值是 100,而 wlp2s0 是 600。这意味着系统倾向于使用 eno1 的路由。

  2. 流量方向 :当有流量从外网到达您的服务器时,流量会通过 wlp2s0 接口,而回复的流量可能会被路由到 eno1 接口,这可能会导致连接不通。

bash 复制代码
ip route

输出如下:

aa@aa:~$ ip route

default via 192.168.99.253 dev eno1 proto dhcp metric 100

default via 192.168.3.253 dev wlp2s0 proto static metric 600

169.254.0.0/16 dev wlp2s0 scope link metric 1000

172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown

172.18.0.0/16 dev br-dd119850bf83 proto kernel scope link src 172.18.0.1

192.168.3.0/24 dev wlp2s0 proto kernel scope link src 192.168.3.10 metric 600

192.168.99.0/24 dev eno1 proto kernel scope link src 192.168.99.159 metric 100

eno1是内网,这是一定要通的。wlp2s0是连接外网路由器的

创建路由表

编辑 /etc/iproute2/rt_tables 文件,添加一个新的路由表,例如:

bash 复制代码
echo "200 external" | sudo tee -a /etc/iproute2/rt_tables

添加路由

添加 wlp2s0 接口的路由到这个新表中:

bash 复制代码
sudo ip route add default via 192.168.3.253 dev wlp2s0 table external

设置策略路由

设置流量到 192.168.3.0/24 网络使用主路由表,其他流量使用 external 表:

bash 复制代码
sudo ip rule add from 192.168.3.10 lookup external sudo ip rule add from 192.168.99.159 lookup main

此设置将确保来自外网的流量通过 wlp2s0 接口路由,而内网流量仍然通过 eno1 接口路由。

10分钟自检脚本

bash 复制代码
#!/bin/bash

# 检查路由规则是否存在
if ! ip rule show | grep -q "from 192.168.3.10 lookup external"; then
    # 如果不存在,则添加规则
    ip rule add from 192.168.3.10 lookup external
fi

if ! ip rule show | grep -q "from 192.168.99.159 lookup main"; then
    # 如果不存在,则添加规则
    ip rule add from 192.168.99.159 lookup main
fi

# 检查路由表是否存在
if ! ip route show table external | grep -q "default via 192.168.3.253"; then
    # 如果不存在,则添加路由
    ip route add default via 192.168.3.253 dev wlp2s0 table external
fi

done.

相关推荐
一叶龙洲17 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
圣光SG17 小时前
Servlet学习笔记
笔记·学习·servlet
奋发向前wcx17 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
敖行客 Allthinker19 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
@Mike@19 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
六点_dn19 小时前
RabbitMQ学习笔记-定义与作用
笔记·学习·rabbitmq
keyipatience20 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
元Y亨H20 小时前
生产环境监控与故障应急处理(5-5-5 标准)指南
运维
踏月的造梦星球20 小时前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle
观山岳五楼21 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu