网络 问题与修复
Linux 代理 V2RayA https://github.com/v2rayA/v2rayA 需要放通 2017 端口 访问 http://your_host:2017 1. 在 Web 界面中,…
Linux 代理
V2RayA
https://github.com/v2rayA/v2rayA
1sudo systemctl enable v2raya
2sudo systemctl start v2raya
需要放通 2017 端口
访问 http://your_host:2017
- 在 Web 界面中,您可以通过导入订阅链接来导入节点配置
- 在 Web 界面中,选择要连接的节点,然后点击左上角的启动按钮。
- 启动成功后,连接的节点将显示为蓝色,表示服务正在运行。
v2rayA默认开放以下端口供代理使用:
- Socks5 代理:20170
- HTTP 代理:20171
- 带分流规则的 HTTP 代理:20172
Mihomo
https://github.com/MetaCubeX/mihomo
教程:https://wiki.metacubex.one/startup/service/
- 下载二进制可执行文件 releases(性能好选 v3)
- v1 / v2 / v3:代表编译时针对不同等级的 CPU 指令集
- v1:最低指令集要求(兼容最老 CPU)
- v2:中等级优化
- v3:最高优化(如果你的 CPU 支持现代指令集,性能最好)
- go120** / **go123:用于编译的 Go 语言版本
- 有些旧 Linux 内核或老发行版可能需要用 Golang 1.20 编译的二进制才能更好兼容
- 你运行的是 Ubuntu 24.04 + Linux 6.14,属较新系统,不需要特意选带 go120 / go123 的版本
- 没有标签 / compatible:旧式、不再推荐的默认编译方式,最新版已经不要优先选用了
- 将下载的二进制可执行文件重名名为 mihomo 并移动到 /usr/local/bin/
1gunzip mihomo-linux-amd64-v3-v1.19.25.gz
2sudo chmod +x mihomo-linux-amd64-v3-v1.19.25
3sudo mv mihomo-linux-amd64-v3-v1.19.25 /usr/local/bin/mihomo
4mihomo -v
- 以守护进程的方式,运行 mihomo。
Clash 配置文件复制到 /etc/mihomo:
1sudo mkdir /etc/mihomo
2cp config.yaml /etc/mihomo
创建 systemd 配置文件 /etc/systemd/system/mihomo.service
1[Unit]
2Description=mihomo Daemon, Another Clash Kernel.
3After=network.target NetworkManager.service systemd-networkd.service iwd.service
4
5[Service]
6Type=simple
7LimitNPROC=500
8LimitNOFILE=1000000
9CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
10AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
11Restart=always
12ExecStartPre=/usr/bin/sleep 1s
13ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
14ExecReload=/bin/kill -HUP $MAINPID
15
16[Install]
17WantedBy=multi-user.target
使用以下命令重新加载 systemd:
1sudo systemctl daemon-reload
启用 mihomo 服务:
1sudo systemctl enable mihomo
使用以下命令立即启动 mihomo:
1sudo systemctl start mihomo
使用以下命令使 mihomo 重新加载:
1sudo systemctl reload mihomo
使用以下命令检查 mihomo 的运行状况:
1sudo systemctl status mihomo
使用以下命令检查 mihomo 的运行日志:
1journalctl -u mihomo -o cat -e
2或
3journalctl -u mihomo -o cat -f
订阅配置成功 /etc/mihomo 能看到:
1➜ ss -tlnp | grep 7890
2LISTEN 0 4096 127.0.0.1:7890 0.0.0.0:*
3➜ mihomo pwd
4/etc/mihomo
5➜ mihomo ls -ahl
6总计 9.3M
7drwxr-xr-x 2 root root 4.0K 1月 6 10:52 .
8drwxr-xr-x 159 root root 12K 1月 6 10:26 ..
9-rw-r--r-- 1 root root 16K 1月 6 10:52 cache.db
10-rw-r--r-- 1 root root 37K 1月 6 10:51 config.yaml
11-rw-r--r-- 1 root root 9.2M 1月 6 10:52 geoip.metadb
适配 MetaCubeXD UI(用于切换节点)
地址:https://github.com/MetaCubeX/metacubexd
更新时点击左下角的 MetaCubeXD 版本号即可更新
在 mihomo 配置中启用外部控制器:
1external-controller: 0.0.0.0:9090
2secret: "Qwer@#1234"
3external-ui: ui
4external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"
使用预制资源
1# Clone the gh-pages branch
2git clone https://github.com/metacubex/metacubexd.git -b gh-pages /etc/mihomo/ui
3
4# Set external-ui in your config
5# external-ui: /etc/mihomo/ui
6
7# Update to latest version
8git -C /etc/mihomo/ui pull -r
9
10sudo systemctl daemon-reload
11sudo systemctl restart mihomo
访问地址:http://
hosts 文件
Windows 的 PowerToys 中有 Hosts 文件编辑器
hosts 文件相当于一个简单的、本地 DNS 映射文件。当我们访问一个域名时,操作系统首先会检查 hosts 文件是否有对应的映射。如果有,它会直接使用该 IP 地址;如果没有,才会请求 DNS 服务器进行解析。
在本地测试或调试应用时,尤其是在开发环境和生产环境使用不同 IP 地址的情况下,可以通过 hosts 文件将同一域名指向本地的不同 IP 地址,模拟不同环境下的访问效果。
- 配置示例
hosts 文件通常位于以下路径:
- Windows:
C:\Windows\System32\drivers\etc\hosts - Linux/macOS:
/etc/hosts
- 本地环境的多域名测试
在开发多域名应用时,尤其是跨域场景下,hosts 文件可以将不同的域名指向本地 IP 地址。例如,将多个开发环境的域名分别指向本地 127.0.0.1:
1127.0.0.1 api.dev.local
2127.0.0.1 frontend.dev.local
3127.0.0.1 backend.dev.local
通过这种配置,开发者可以在本地模拟不同子域名的环境,而不依赖于外部 DNS 服务
- 快速切换环境
开发过程中通常涉及开发、测试、预发布等不同环境。可以在 hosts 文件中配置不同环境的域名映射,快速切换环境测试。
1# Dev environment
2192.168.1.101 app.example.com
3# Staging environment
4#192.168.1.102 app.example.com
5# Production environment
6#203.0.113.45 app.example.com
通过注释和取消注释不同的行,切换访问环境,避免频繁修改代码或环境配置。
- 注意事项
- 修改
hosts文件后通常会立即生效,无需重启系统。 - 修改文件时需要管理员权限,例如在 Linux/macOS 上用
sudo编辑。 - hosts 文件不支持通配符(如 *.example.com)来匹配同一域名下的多个子域名。但可以通过将多个域名写在同一行并指向同一 IP 地址,用空格分割
192.168.1.100 hr.example.com doc.example.com # 测试
ip addr 与 network 掩码区别
- netmask:
ifconfig使用的是传统的子网掩码格式,这种格式通过子网掩码的点分十进制表示来描述 IP 地址的网络部分和主机部分。 - CIDR 格式:
ip addr使用 CIDR 标准,它的后缀数字(如/20)表示网络位数,等价于255.255.240.0。这种格式更简洁,已被广泛采用。
转换关系
例如,/20 的 CIDR 格式对应的 netmask 是 255.255.240.0,这是因为前 20 位是 1,其余位是 0:
/8对应255.0.0.0/16对应255.255.0.0/24对应255.255.255.0
现代系统和工具逐渐倾向于使用 CIDR 格式来提高效率,因此 ip addr 更加适合自动化和脚本环境,然而理解传统的 netmask 格式仍然有助于兼容性。
iptables 中的防火墙规则链
- INPUT:控制进入本地系统的流量
- OUTPUT:控制从本地系统发出的流量
- FORWARD:控制通过系统的流量
proxy 中各种格式匹配
- 精确主机名或 IP 地址
1no_proxy=localhost,127.0.0.1,::1,example.com
- 表示访问这些地址时,不走代理。
- example.com 只匹配完全相同的域名,不匹配 sub.example.com。
- 顶级域名匹配(前缀点 .)
1no_proxy=.example.com
- 匹配所有以 .example.com 结尾的子域名(如 api.example.com, www.example.com)。
- 注意:**不会匹配 **example.com 本身,只匹配子域名。
- IP 地址范围(CIDR 格式)
1no_proxy=192.168.0.0/16,10.0.0.0/8
- 匹配 192.168..、10...* 所有地址;
- 是否支持 CIDR 取决于具体程序(如 curl 通常支持,wget 不一定)。
- IP 范围(起始到终止)
1no_proxy=192.168.1.1-192.168.1.100
- 匹配从 192.168.1.1 到 192.168.1.100 的 IP。
- 并非所有工具支持,请根据实际情况测试。
- 端口匹配(少数支持)
1no_proxy=127.0.0.1:8000
- 大多数工具只匹配域名或 IP,标准 no_proxy **不支持端口号匹配,**但有些库(如 Golang 中的 http.ProxyFromEnvironment)允许,不会区分端口。建议避免依赖这一特性。
局域网连接
在 Clash 中启用“允许局域网连接”(Allow LAN)功能,可以使同一局域网内的其他设备通过你的设备共享代理服务,实现网络资源的共享与集中管理。该功能在家庭、办公或开发环境中尤为实用。
启用“允许局域网连接”功能后,Clash 会监听来自局域网内其他设备的代理请求,允许它们通过你的设备访问互联网或特定网络资源。
在连接的设备网络中,找到 HTTP 代理 - 配置代理 - 手动
服务器:开了 Clash 的设备 IP
端口:7897
手机开热点也能实现此功能,找到 Shadowrocket - 设置 - 代理 - 代理共享 - 启用共享 - 将此 IP 和 Port 填入连接此手机热点的设备并设置 Proxies - 修改 HTTP 和 HTTPS
外部控制器监听地址
外部控制器监听地址(**external-controller**) 是用于为 Clash 内核提供一个 RESTful API 端口,允许通过 HTTP 接口对 Clash 进行动态控制和监控。它的作用可细分为以下几方面:
- 动态控制与脚本化
- 通过 HTTP 请求(如 GET / PUT / PATCH 接口),可以实时切换代理节点、模式(全局/Gateway/规则)、更新配置等,无需重启 Clash 或手动编辑配置文件。
- 状态监控与流量查询
- 可通过
/logs获取日志、/traffic查看实时流量,以及/version、/connections等接口了解运行状态。
- 可通过
- 第三方管理界面支持
- Clash-X、Clash.Meta Dashboard、Clash-verge、ClashWeb 等 GUI,正是通过监听的 external-controller 地址调用接口实现图形配置与展示。
- 集成自动化工具
- 可以通过脚本、cron、系统 webhook 等机制,结合 API 实现策略自动切换、节点健康检测与日志分析,适合进阶用户与企业级场景。
Google Map 地图路线偏差
URL 地址增加:www.google.com/maps?gl=CN