介绍一款网络代理服务器
- 2025-03-14 20:28:00
- 丁国栋
- 原创 322
企业随着发展很容易形成以一个城市为总部、多个城市为分部的地理位置拓扑结构,例如总部在青岛,分部在北京、深圳、上海等。
企业组网一般以总部为主,总部的人数多、设备多,拥有的网络、服务器等设备也最高级,例如总部拥有固定公网IP地址,大部分基础服务搭建在总部。
所以很自然形成了以总部为中心的星形网络,总部处设置VPN服务,提供分部和远程办公的网络接入。
企业的一些敏感的服务和数据只对总部的IP开放白名单。
随着分部人数的逐渐增多,VPN的接入会增加总部的网络带宽,这时我们需要有其他固定公网IP来作为白名单IP地址。因为云服务器的固定IP地址相对便宜,所以会选择1~2个云服务器作为代理服务器提供对特定服务的访问。
这时就需要在云服务器上搭建代理服务器来满足网络访问的需要。
通过使用代理自动配置可以非常灵活的决定访问什么URL使用什么代理服务器去访问。
代理自动配置(PAC)文件是一个 JavaScript 脚本,其核心是一个 JavaScript 函数,用来决定网页浏览请求(HTTP、HTTPS,和 FTP)应当直连目标地址,还是被转发给一个网页代理服务器并通过代理连接。
目前有很多解决方案可以用于搭建代理服务器,其中之一是 mihomo,使用起来非常简单,功能强大,配置、运行和维护简单。mihomo支持使用systemd管理。
官网是:https://wiki.metacubex.one/
GitHub:https://github.com/MetaCubeX/Meta-Docs
参考配置文件:
sudo vim /etc/mihomo/config.yaml
mixed-port: 3129 # 指定端口,如果需要绑定地址可以使用bind-address: "10.8.1.7"或 bind-address: "*" allow-lan: true # 允许局域网连接 log-level: debug # 设置日志为debug,这样可以查询某个域名的对应的IP地址,建议日常使用使用info级别 rules: - DOMAIN-SUFFIX,hispaceclt.hicloud.com,REJECT # 拒绝访问华为的这个域名,防止带宽被占用
另一个更多的配置:
mixed-port: 3125
allow-lan: true
bind-address: "10.1.0.4"
log-level: info
dns:
enable: true
ipv6: true
enhanced-mode: fake-ip
fake-ip-filter:
- "*"
- "+.lan"
- "+.local"
nameserver:
- system
rules:
- MATCH,DIRECT
提示:mixed-port 意味着可以使用 http协议也可以使用socks5协议,如果使用https协议需要配置证书,参见 https://github.com/MetaCubeX/mihomo/blob/Alpha/docs/config.yaml 。
完整参考:https://github.com/MetaCubeX/mihomo/blob/Alpha/docs/config.yaml
活跃分支:https://github.com/MetaCubeX/mihomo/tree/Alpha
发布版本:https://github.com/MetaCubeX/mihomo/releases/tag/v1.19.11 或 https://github.com/MetaCubeX/mihomo/releases/latest
提示:建议安装deb或rpm包,例如 https://github.com/MetaCubeX/mihomo/releases/download/v1.19.12/mihomo-linux-amd64-v1-v1.19.12.deb
配置文档:https://wiki.metacubex.one/config/general/
systemd 配置文件示例:
# /lib/systemd/system/mihomo.service [Unit] Description=mihomo Daemon, Another Clash Kernel. Documentation=https://wiki.metacubex.one After=network.target nss-lookup.target network-online.target [Service] Type=simple CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE ExecStart=/usr/bin/mihomo -d /etc/mihomo ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure RestartSec=10 LimitNOFILE=infinity [Install] WantedBy=multi-user.target
在Windows上运行mihomo服务
下载 exe 文件放到合适的位置,首次运行后会自动创建一个初始的配置文件,默认是 C:\Users\<username>\.config\mihomo\config.yaml 语法和其他平台如Linux上是一样的。
双击exe就可以前台运行,目前应该不支持自动添加为服务,如果需要可以自己手动创建并注册为服务。
提示
建议搭配隧道服务使用,不要直接在公共网络上使用,以提高安全性。例如用 OpenVPN 创建隧道连接内网,在用 mihomo 创建代理服务并只监听内网地址。参见 https://thedf.cc/blog/the-quick-guide-for-openvpn-126.html 。
--