Linux网络探索总结
欢迎交流🤣🤣
OpenWRT
解决wireguard在openwrt全局代理流量不走代理的原因。
场景:对端设置了wg的服务端,client需要走wireguard全局代理,绕过网络认证,并且将其作为wan口,然后将所有的流量都路由过去。类似于安卓共享VPN一样(原生安卓)
初始条件:针对USB网络共享问题
由于会将USB识别为光驱CD-ROM,所以需要安装如下包,实现网络连接,相关内容可以查看状态→系统日志
- 如果时间不对,先将NTP服务器设置好
- 设置好kmod-usb-net-rndis,usb-modeswitch,kmod-usb-net-cdc-ether,wireguard-tools,luci-app-wireguard,luci-proto-wireguard
- 插入USB网络
添加网络接口
- 添加USB接口:网络→接口,添加usb,协议dhcp,选择日志中对应的网口,如eth1(可以通过插拔观察设备在线情况),如果有需要,这些还得添加一个dhcpv6以便用于ipv6的访问,防火墙为wan
- 添加wireguard接口,同理,设置,选择wireguard客户端,在设置页面,选择
导入配置文件,粘贴wg-clinet 配置文件,防火墙为wan,在高级设置中一定要勾选路由允许IP。 - 还有一点,那就是metric,如果发现route之后的metric大于原来路由表的metric,务必在网络→接口,调低其他的metric,使得wg的metric大于这些。
- 2026-4-30-19-29:更新:不再建议直接修改metric,可以让默认metric比网络端口大,但是需要在网络→路由中加入一个硬路由
0.0.0.0/0指向wg,并且将metric设置为0

- 这个时候,应该可以看到wg端口有流量变化了!但是在op终端应该还是ping不通
设置路由
不知道为什么,即使设置了默认网关,实际上wg也不能成为默认网关,这就会导致如下图所示的情况,default是第一条,而不是第三条54网段的。

这个时候我们需要设置强制路由:网络→路由,添加,接口为wg,目标为0.0.0.0/0,metric设置为1,可以看到第一条已经变成如下这个形式,说明工作正常

至此,可以实现类似于手机共享usb一样的功能
设置域名白名单
DNS重绑定保护,如果dns解析出来是个内网ip,默认会认为这个是网络攻击,所以默认是丢弃的,导致ping不通,如hinas-v4.ninglang.top,进入网络→DHCP→过滤器→域名白名单→添加域名即可解决

添加无线
进入网络→无线,有radio0和radio1,0为2.4G,1为5G,点击添加按钮,添加,设置页面需要设置为lan口,设置密码即可,务必避免12和13信道,因为默认如果是us的话会导致2.4G无法启动

tailscale登录
- 先安装软件包kmod-tun,iptables-zz-legacy, ip6tables-zz-legacy
进入GuNanOvO/openwrt-tailscale: The Latest, Smaller Tailscale for OpenWrt Devices. 适用于 OpenWrt 设备的 最新的、更小的 Tailscale。下载合适版本的tailscale ,安装
- 登录tailscale login
- 开启tailscale 并且接受子网路由tailscale up --reset --accept-routes --accept-dns=false
- 在网络→接口→添加一个接口,设置开机不启动,选择不配置协议→选择tailscale0,在防火墙新建一个防火墙tailscale
- 在网络→防火墙→tailscale防火墙中设置,入站,出站均接受,并且在tailscale这里部分选择动态ip伪装
- 记得将lan口对tailscale 的访问加入,需要两个可以完全互相访问
- 如果出现某些误差导致tailscale挂了,请使用如下命令重启,应该可以重新获取ip
1 | killall tailscaled |
- 如果想要启动,可以使用
1 | tailscale up |
安装之后,进入ssh命令行,执行tailscale login --reset--accept-routes --accept-dns=false,一般需要reset清空路由
- 如果想要结束自启动,可以尝试直接使用系统→
记录
- 不知道什么原因,目前的方案是关闭路由中的映射,重启,发现还可以
更新_2026-05-30
- 网络→接口→wg
- 关闭自启动,使用默认网关,metric设置1
- 允许ip 0.0.0.0/0;输入端点ip的位置,可以直接使用ip
- 网络路由改为0.0.0.0/0→wg,metric→0
- 写一个Hotplug 脚本
1 | vi /etc/hotplug.d/iface/99-wg-delay |
1 |
|
这样就可以再wan启动之后,过去30s使用wg0
- 解决端点访问的问题:访问wg server时候依然走wan口,但是局域网(wifi)流量全部走wg,这样不会环路
系统→启动项→本地启动脚本,写入,直接写入上面的Hotplug 脚本中,因为wg没有启动的时候没有wg0网卡
1 | ip route add default dev wg0 table 100 |
使用SSH-Tunnel实现代理
一般来说,服务器是没有代理软件的,导致内网的软件无法直接访问,如果刚好也懒得安装的话,毕竟一般安装可能需要导入配置之类,在加上一个,服务器和客户机都是内网的情况下,这种情况变得很麻烦,如果直接使用客户端的代理,肯定是最方便的。这里主要使用ssh服务实现将客户端的内网的代理。

命令行
将远端的7890监听Windows端内网的7890端口,实现代理转发,
1 | ssh -R 7890:192.168.1.25:7890 username@server_ip |
然后使用代理节点
1 | export http_proxy="http://127.0.0.1:7890" |
最后测试内网使用可以访问
1 | curl -I http://192.168.1.25 |
图像软件直接使用
使用xshell,ssh→隧道→添加,使用远程模式,原主机是localhost,侦听端口设置为7890,目标主机和端口就填写内网代理端

测试应该OK的
VSCode设置
如何通过vscode进行设置,进入设置,这个实现需要选择remote的设置,这是因为如果选择user的话,会直接影响这整个vscode,然后在设置proxy。
- 在proxy中填写http://127.0.0.1:7895
- proxy with strict ssl取消
- proxy support设置运行
更换DNS
直接更换DNS,开机自动生效
1 | nano /etc/systemd/resolved.conf |
1 | [Resolve] |
重启一下
1 | systemctl restart systemd-resolved |