前言
众所周知,现在飞牛的迅雷应用是不需要进行任何登录验证的,任何人,只要能访问到飞牛系统的 IP
,就可以通过端口号直接访问,毫无隐私性可言。虽然你可以通过更改端口号的方式进行增加隐蔽性,但是仍然可以通过端**破工具找出来。
在比较旧的版本中,我们可以通过获取 root
权限之后直接修改 nginx
相关的配置文件,然后给迅雷端口的服务增加 Auth Basic
功能,但是新版本的已经不支持修改 nginx
相关的配置,一旦我们修改,重启 nginx
服务后,飞牛就把默认的配置文件恢复。
但是实际上我们也可以使用docker自己配置一个 nginx
容器,然后再这个容器中再反向代理到宿主机上的迅雷端口,实现曲线救国。
实施
在开始之前,我们需要先将迅雷上面的服务进行修改,使得它仅限于本机(localhost)访问,避免其他人直接通过端口访问。
以下所有命令,均需要在root用户下执行
首先先创建一个网络
docker network create my_bridge_network
- 把我们刚刚创建的网络应用到迅雷容器

2.修改该容器的服务仅限于本机访问
先查看迅雷的容器的id
docker ps
然后修改绑定的IP
cd /vol1/docker/containers # vol1 是docker安装路径,可能要相应修改
vim <XUNLEI_CONTAINER_ID>/hostconfig.json # XUNLEI_CONTAINER_ID 是刚刚查到的容器id
# 将 HostIp 改为 127.0.0.1 然后重启docker服务
systemctl restart docker
此时我们将无法从外部通过飞牛系统ip加端口号的方式访问我们的系统。
- 配置一个nginx容器
在这里,我们不能直接下载 nginx
镜像,因为这个镜像把绑定很多和宿主机冲突的端口,相反,我们直接从最基础的 ubuntu
镜像构建

然后创建一个容器,设置“开机自动启动”,端口我们加一个2346映射到2346的,网络设置成 host
模式,然后进入到容器终端中,执行安装nginx
apt update
apt install nginx
apt install apache2-utils
apt install vim
4.创建用于登录的用户和密码
htpasswd -c /etc/nginx/.htpasswd username
5.添加nginx反向代理逻辑
vim /etc/nginx/sites-available/default
# 把 80 端口改成一个与宿主机不冲突的端口
vim /etc/nginx/conf.d/xunlei.conf
# 把下面的复制进去
server {
listen 2346; # 监听 2346 端口
server_name _; # 匹配所有请求(包括直接通过 IP 地址访问)
location / {
auth_basic "Restricted Access"; # 启用 Basic Auth
auth_basic_user_file /etc/nginx/.htpasswd; # 指定密码文件路径
proxy_pass http://127.0.0.1:2345; # 反向代理到本地服务
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 可选:日志配置
access_log /var/log/nginx/your-site.access.log;
error_log /var/log/nginx/your-site.error.log;
}
然后我们可以测试一下:
nginx -t
运行nginx服务
nginx
然后我们就可以通过IP:2346的方式访问我们的迅雷了,它需要我们输入用户名和密码。
