国内网络环境下,既能对外发布服务还能稳定访问谷歌API的服务器最优网络方案

在国内网络环境下,服务器既要能对外发布服务,又要自身能访问谷歌API等外网服务,最优的网络方案是在服务器上最小化的跑一个Mihomo服务。

服务器部署一个Mihomo服务, 并配置代理访问谷歌API,然后服务器的其他网络设置按正常的来,这样配置的网络最稳定可靠,比用旁路由等其他方案靠谱。

具体如下:
一、下载Mihomo

# 下载(以 1.18.1 版本为例)
curl -LO https://github.com/MetaCubeX/mihomo/releases/download/v1.18.1/mihomo-linux-amd64-v1.18.1.gz
# 解压并重命名
gunzip mihomo-linux-amd64-v1.18.1.gz
chmod +x mihomo-linux-amd64-v1.18.1
sudo mv mihomo-linux-amd64-v1.18.1 /usr/local/bin/mihomo

二、创建配置文件

在/etc/mihomo/config.yaml 中,利用Mihomo 的 proxy-providers:

port: 7890
allow-lan: true
mode: rule
log-level: info
external-controller: 0.0.0.0:9090
secret: "你的密码"

# 1. 节点供应商:自动拉取机场节点
proxy-providers:
  my_airport:
    type: http
    url: "你的机场订阅链接"
    interval: 3600
    path: ./proxies.yaml
    health-check:
      enable: true
      interval: 600
      url: http://www.gstatic.com/generate_204

# 2. 策略组:决定如何选择节点
proxy-groups:
  - name: "🚀 自动选择"
    type: url-test
    use:
      - my_airport
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

  - name: "🔰 选个节点"
    type: select
    use:
      - my_airport
    proxies:
      - "🚀 自动选择"
      - "DIRECT"

# 3. 分流规则:让系统自动判断
rules:
  # 优先让 Google 走代理(防止被误伤)
  - DOMAIN-SUFFIX,google.com,🚀 自动选择
  - DOMAIN-SUFFIX,googleapis.com,🚀 自动选择
  
  # 常见的自动分流(使用 Mihomo 内置的 GEOIP/GEOSITE)
  - GEOSITE,cn,DIRECT          # 国内网站直连
  - GEOIP,CN,DIRECT,no-resolve # 国内 IP 直连
  
  # 其余所有不在列表里的国外流量,全部走代理
  - MATCH,🚀 自动选择

三、防火墙打开端口

端口:7890 和 9090

四、配置开机自启 (Systemd)

创建一个服务文件:
sudo vi /etc/systemd/system/mihomo.service

[Unit]
Description=Mihomo Daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=always

[Install]
WantedBy=multi-user.target

然后启动:sudo systemctl enable –now mihomo

五、docker-compose部署Mihomo

1、docker-compose.yml

services:
  mihomo:
    image: metacubex/mihomo:latest
    container_name: mihomo
    restart: always
    volumes:
      - /opt/mihomo:/root/.config/mihomo
    ports:
      - "7890:7890"    # HTTP 代理端口
      - "9090:9090"    # 外部控制面板端口(用于远程连接 UI)
    environment:
      - TZ=Asia/Shanghai

2、创建目录

mkdir -p /opt/mihomo
cd /opt/mihomo
touch config.yaml

3、 把config.yml 和docker-compose.yml 放入 /opt/mihomo目录

4、启动容器

docker compose up -d

5、检查是否生效

a. 检查日志

命令行实时日志

journalctl -u mihomo -f

docker 看docker log

docker logs mihomo

b.验证访问

# 测试 Google(验证代理是否能翻墙)
curl -x http://127.0.0.1:7890 -I https://www.google.com

# 测试百度(验证分流是否走直连)
curl -x http://127.0.0.1:7890 -I https://www.baidu.com

应该能看到,

[TCP] 172.17.0.1:xxxxx –> www.google.com:443 match DomainSuffix(google.com) using 🚀 自动选择[香港节点]

[TCP] 172.17.0.1:xxxxx –> api.bt.cn:443 match GeoSite(cn) using DIRECT

六、 在系统层面设置环境变量

sudo vi /etc/profile.d/proxy.sh

写入如下内容:

# 设置代理服务器地址
proxy="http://127.0.0.1:7890"

export http_proxy="$proxy"
export https_proxy="$proxy"
export ftp_proxy="$proxy"

# 设置不走代理的白名单(非常重要:避免内网请求被转发)
export no_proxy="localhost,127.0.0.1,172.16.10.0/24,bt.cn,.bt.cn"

配置立即生效

source /etc/profile

七、在应用层面使用环境变量(推荐)

建议仅在需要的应用上配置,避免整体通过代理访问。

原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/1696.html

淘宝小店:陈皮王五工作室

公司网址:海灵德(六安)环境科技有限公司

(0)
GaryGary
上一篇 2026-02-05 下午4:30
下一篇 2025-02-12 下午4:46

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注