mihomo
阿里云服务器每次访问外网都超时,之前安装工具都是先下载到本地再上传到服务器。前些天复现漏洞下个镜像拖来拖去的,实在是忍无可忍了。网上看了各种文章,尝试了各种方法,最后使用了mihomo代理成功访问外网。
mihomo安装
mihomo下载,github地址:https://github.com/MetaCubeX/mihomo
1 | 1. 因为没法访问外网,要先下载到本地,再传到服务器。 |
经过上述步骤以后,要在为mihomo添加配置文件config.yaml和Country.mmdb。Country.mmdb我是在在github上找的。
2.创建 systemd 配置文件 /etc/systemd/system/mihomo.service
,并添加如下内容:
1 | [Unit] |
创建配置文件。mihomo和clash meta用的是相同的内核,因此这个配置文件和我本地Windows系统用的clash meta是一样的。我创建的配置文件在/etc/mihomo/config.yaml。但是这个配置文件需要按个性修改,我会在后文介绍他的更全面的功能,部分细节如下:
1 | [11:42:20 root@rocky95 ~]# head -n 20 /etc/mihomo/config.yaml |
重启systemd
1 | systemctl daemon-reload |
启用 mihomo 服务:
1 | systemctl enable mihomo |
mihomo使用
1 | 1. 启用 mihomo 服务: |
为Linux设置代理
临时启用和关闭代理
在使用Linux时,临时启用代理的命令:
1 | export http_proxy=http://username:password@ip:port |
ip和port为你的代理服务器的ip以及开放的端口。
取消代理:
1 | unset http_proxy |
永久全局代理
永久全局代理将临时启用代理的命令添加至系统配置文件中,source刷新shell环境即可。
修改系统配置文件
vim /etc/profile
添加以下代码:
1 | export http_proxy=http://username:password@ip:port |
source /etc/profile
是配置文件生效
设置代理的基本语法
1 | `环境变量 |
部署Web控制面板
部署好了mihomo代理以后,在虚拟机上切换节点、重载配置等较为不便,可以为mihomo部署控制面板,方便管理。但如果服务器暴露在公网中,使用Web面板会很不安全。因此把Web面板设置成只能本地发开就可以了,我们可以通过SSH协议链接服务器再打开Web面板。
在config.yaml中添加或修改如下配置:
1 | external-controller: '127.0.0.1:7891'#0.0.0.0所有ip都可访问 |
从github下载
1 | sudo git clone https://github.com/metacubex/metacubexd.git -b gh-pages /etc/mihomo/ui |
重启mihomo服务
1 | sudo systemctl restart mihomo |
远程连接访问
1 | #首先通过SSH连接我们的服务器 |
如果external-controller
设置成 0.0.0.0
就直接访问http://ip:port/ui(不建议)
docker使用网络代理
Docker守护进程默认不会使用系统环境变量中的代理设置,需要单独配置。
gitbook上有一篇docker的详解:Docker — 从入门到实践
为 docker 创建配置文件夹。
1 | sudo mkdir -p /etc/systemd/system/docker.service.d |
为 dockerd 创建 HTTP/HTTPS 网络代理的配置文件,文件路径是 /etc/systemd/system/docker.service.d/http-proxy.conf 。并在该文件中添加相关环境变量。
1 | [Service] |
注意:如果没有密码就不添加 user:password@
(建议设置密码)
刷新配置并重启 docker 服务。
1 | sudo systemctl daemon-reload |
注意:使用 docker info
可以查看docker配置信息
经过我不断的测试,我本地的电脑总是会出现无法使用服务器的代理访问外网的情况,通常需要我进入Web控制页面换几个代理才可以。这样一来非常的麻烦,因此我放弃了这么操作。为了方便,当我的本地机器(虚拟机)需要使用代理时,直接使用我主机的代理。而为了云服务器的安全,直接将云服务器的代理对外关闭了。
客户端使用代理
因为代理是部署在服务器的,因此自己的手机、电脑、平板等也可以使用服务器的代理。修改配置文件allow-lan改为true即可(危险)。
1 | allow-lan: true |
但是不得不说,如果你的服务器在公网,那么这是一件很危险的事情,因此至少需要给你的代理设置密码,也可以绑定IP白名单。
我试了一下,如果手机不用工具的话使用用户名密码访问不了公网,需要安装代理工具。
详细配置说明
1 | # ==== 核心代理配置 ==== |
遇到的问题:
网上说mihomo的配置文件和clash是一样的,因此要把订阅链接转换成clash的订阅链接,可是我转换后并不能成功使用。经过进一步的了解得知mihomo是clash meta的更新,随后转成meta链接成功(在订阅链接后加
&flag=meta
)。为docker更换源、使用阿里加速器。然而尝试了各种源均没有什么卵用,只有个别镜像拉取成功,并且就算docker配置成功了,我还是没办法直接下载github的资源。
使用clash代理,然而我花好久终于要整好的时候,clash并不支持我的配置文件中
type: hysteria2
,也就是不支持hysteria2协议。一时间手足无措,最后在一篇文章里看到mihomo支持,最后配置成功。
本文参考: