【Linux】mihomo代理

mihomo

阿里云服务器每次访问外网都超时,之前安装工具都是先下载到本地再上传到服务器。前些天复现漏洞下个镜像拖来拖去的,实在是忍无可忍了。网上看了各种文章,尝试了各种方法,最后使用了mihomo代理成功访问外网。

mihomo安装

  1. mihomo下载,github地址:https://github.com/MetaCubeX/mihomo

1
2
3
4
1. 因为没法访问外网,要先下载到本地,再传到服务器。
2. gzip -d mihomo.gz #解压缩
3. mv mihomo /usr/local/bin/mihomo
4. sudo chmod -x /usr/local/bin/mihomo #设置可执行权限

经过上述步骤以后,要在为mihomo添加配置文件config.yaml和Country.mmdb。Country.mmdb我是在在github上找的。

2.创建 systemd 配置文件 /etc/systemd/system/mihomo.service,并添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=mihomo Daemon, Another Clash Kernel.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
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
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
  1. 重启systemd

1
systemctl daemon-reload
  1. 启用 mihomo 服务:

1
4. systemctl enable mihomo

mihomo使用

1
2
3
4
5
6
7
8
9
10
11
12
1. 启用 mihomo 服务:
systemctl enable mihomo
2. 立即启动 mihomo:
systemctl start mihomo
3. 重新加载mihomo
systemctl reload mihomo
4. 检查 mihomo 的运行状况
systemctl status mihomo
5. 检查 mihomo 的运行日志
journalctl -u mihomo -o cat -e

journalctl -u mihomo -o cat -f

为Linux设置代理

临时启用和关闭代理

在使用Linux时,临时启用代理的命令:

1
2
export http_proxy=http://ip:port
export https_proxy=htpp://ip:port

ip和port为你的代理服务器的ip以及开放的端口。

取消代理:

1
2
unset http_proxy
unset https_proxy

永久全局代理

永久全局代理将临时启用代理的命令添加至系统配置文件中,source刷新shell环境即可。

1
2
3
4
5
6
vim /etc/profile
……
export http_proxy=http://j262.kdltps.com:15818
export https_proxy=https://j262.kdltps.com:15818
……
source /etc/profile

设置代理的基本语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
`环境变量
http_proxy:为http变量设置代理;默认不填开头以http协议传输
# 示例
`以下是常见的基本语法
http_proxy=ip:prot
http_proxy=http://ip:prot
http_proxy=socks4://ip:prot
http_proxy=socks5://ip:prot

`如果不想设置白名单,也可以使用用户名和密码进行验证
http_proxy=http://username:password@ip:prot
http_proxy=http://username:password@ip:prot

https_proxy:为https设置代理
ftp_proxy:为ftp设置代理
all_proxy:全部变量设置代理,设置了这个的时候上面不需要设置
no_proxy:无需代理的主机或域名;可以使用通配符,多个时使用","号分隔
# 示例:
*.aiezu.com,10.*.*.*,192.168.*.*
*.local,localhost,127.0.0.1

docker使用网络代理

gitbook上有一篇docker的详解:Docker — 从入门到实践

  • 为 dockerd 创建配置文件夹。

1
sudo mkdir -p /etc/systemd/system/docker.service.d
  • 为 dockerd 创建 HTTP/HTTPS 网络代理的配置文件,文件路径是 /etc/systemd/system/docker.service.d/http-proxy.conf 。并在该文件中添加相关环境变量。

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
  • 刷新配置并重启 docker 服务。

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

遇到的问题:

  1. 网上说mihomo的配置文件和clash是一样的,因此要把订阅链接转换成clash的订阅链接,可是我转换后并不能成功使用。经过进一步的了解得知mihomo是clash meta的更新,随后转成meta链接成功(在订阅链接后加&flag=meta)。

  2. 为docker更换源、使用阿里加速器。然而尝试了各种源均没有什么卵用,只有个别镜像拉取成功,并且就算docker配置成功了,我还是没办法直接下载github的资源。

  3. 使用clash代理,然而我花好久终于要整好的时候,clash并不支持我的配置文件中type: hysteria2,也就是不支持hysteria2协议。一时间手足无措,最后在一篇文章里看到mihomo支持,最后配置成功。

本文参考:

Docker — 从入门到实践

-------------本文结束感谢阅读-------------
创作不易,您的支持将鼓励我继续创作!