近期随着临近某特殊时点,原有的几个科学上网节点都开始变得不太正常,不是延迟过高,就是完全不能使用。油管上学习了naive和reality节点架设的方法,因为这两种方法排除了tls in tls的特征,暂时还能正常使用,下面展示下如何用docker创建节点:
创建docker网络
docker network create –subnet 192.168.50.0/24 –gateway 192.168.50.1 ailun
创建各个docker容器
192.168.50.5 nginx
docker run –rm -v /home/nginx:/mnt nginx cp /etc/nginx/nginx.conf /mnt/
docker run -d
–name nginx –network=ailun –ip 192.168.50.5
-p 80:80
-p 443:443
-v /home/nginx/conf.d:/etc/nginx/conf.d
-v /home/nginx/html:/usr/share/nginx/html
-v /home/cert:/home/cert
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf nginx
根据这个部署nginx的挂载命令,容器中的路径 /usr/share/nginx/html/ 其实对应了宿主机的 /home/nginx/html/ 路径,这个路径一般放置网站的根目录文件夹。在宿主机的 /home/nginx/html/ 目录下创建一个文件夹,以你的域名进行命名,在本例中,文件夹命名为:xui.ailun.ml;
在 /home/nginx/conf.d/ 目录下创建一个文件,以 .conf 结尾,在本例中,文件命名为:xui.ailun.ml.conf;
192.168.50.10 acme
docker run –rm -itd
-v /home/cert:/acme.sh
–net=ailun –ip 192.168.50.10
–name=acme.sh
neilpang/acme.sh daemon
使用acme.sh 申请证书:
docker exec acme.sh –issue -d xui.ailun.ml –server letsencrypt –standalone
打开 /home/nginx/conf.d/ 中的网站配置文件,添加如下配置:
listen 8443 ssl http2; # https监听的端口,与stream模块中blog上游服务器配置的端口保持一致
下面这部分添加到 #禁止访问的文件或目录 这一行的上边
ssl_certificate /home/cert/path/fullchain.pem; # 更改为证书所在路径,一般是fullchain.pem文件
ssl_certificate_key /home/cert/path/privkey.pem; # 更改为私钥所在路径,一般是privkey.pem文件
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security “max-age=31536000”;
192.168.50.15 xui
cd /home && mkdir x-ui && cd x-ui
docker run -itd –network=ailun –ip 192.168.50.15
-v $PWD/db/:/home/x-ui/
–name x-ui –restart=unless-stopped
enwaiax/x-ui:alpha-zh
浏览器访问 sea.anqi.ml 即可访问到xui面板,默认用户与密码都为 admin;进入建议即使修改密码。
注意:点击“面板设置”后,xui面板会自动修改买面板访问路径,请记住此路径(当然也可以在面板设置中自定义此路径)。
192.168.50.20 naive
apt update
apt install golang-go ca-certificates
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build –with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive
在编译好的caddy程序的同级目录下创建一个Caddyfile文件:(由于做了挂载,这个目录对应了宿主机的 /home/naiveproxy 目录)
文章评论