为什么需要获得一个干净的代理IP
最近大火的ChatGPT无论是注册还是订阅Plus会员,都对ip的要求很高,有些必须是当地的原生ip, Vultr 和 LightNode 都是国内用的非常多的海外 VPS, 都可以按小时计费的, LightNode支持支付宝支付, 在使用完后删除机器就没有其他费用。下面开始介绍如何使用LightNode低成本获取一个干净的代理IP,你可以使用我的邀请链接注册,可以享受95折的优惠 传送门🌀
准备工作
Lightnode 购买一个按小时计费的
安装Docker
这个之前介绍过哦~ 通往文章的传送门🌀
trojan文档
若选择了 CentOS 系统,先登陆服务器关闭 SELinux :
然后修改防火墙规则,放行相关协议流量:
1 2 3 4 5 6
| firewall-cmd --permanent --add-service=https firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --permanent --add-port=8443/tcp firewall-cmd --reload
|
或者直接关闭防火墙亦可:
1 2
| systemctl stop firewalld systemctl disable firewalld
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| docker pull teddysun/trojan-go
mkdir -p /etc/trojan-go
cat > /etc/trojan-go/config.json <<EOF { "run_type": "server", "local_addr": "0.0.0.0", "local_port": 443, "remote_addr": "127.0.0.1", "remote_port": 80, "password": [ "your_awesome_password" ], "ssl": { "cert": "server.crt", "key": "server.key", "sni": "your-domain-name.com", "fallback_port": 1234 } } EOF
docker run -d --network host --name trojan-go --restart=always -v /etc/trojan-go:/etc/trojan-go teddysun/trojan-go
//需要挂载证书 docker run --network host --name trojan-go -v /etc/trojan-go:/etc/trojan-go -v /etc/ssl/fullchain.cer:/etc/ssl/fullchain.cer -v /etc/ssl/domain.com.key:/etc/ssl/domain.com.key --restart=always -d teddysun/trojan-go
//可用版本
cat > /etc/trojan-go/config.json <<EOF { "run_type": "server", "local_addr": "0.0.0.0", "local_port": 443, "remote_addr": "next.selenophile.top", "remote_port": 443, "password": [ "~uw9xL*,s&P:rk" ], "ssl": { "cert": "/etc/letsencrypt/live/selenophile.top/fullchain.pem", "key": "/etc/letsencrypt/live/selenophile.top/privkey.pem", } } EOF
|
安装Nginx
第一种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| mkdir /etc/nginx && mkdir /etc/nginx/conf.d nano /etc/nginx/conf.d/default.conf
server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; }
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/privatekey.key; location / { root html; index index.html index.htm; }
}
docker run --network host --name nginx -v /etc/nginx/conf.d:/etc/nginx/conf.d --restart=always -d nginx
|
第二种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| mkdir -p /home/nginx/conf mkdir -p /home/nginx/log mkdir -p /home/nginx/html
docker run --name nginx -p 80:80 -d nginx
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/
docker stop nginx
docker rm nginx
docker run \ -p 80:80 \ --name nginx \ -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /home/nginx/log:/var/log/nginx \ -v /home/nginx/html:/usr/share/nginx/html \ -d nginx:latest
|
申请域名 HTTPS 证书
有很多方法可以为域名申请 HTTPS 证书,这里推荐使用 Let’s Encrypt 获取免费证书。
Let’s Encrypt 是一个免费、非营利性的开放证书权威中心,由互联网安全研究小组(ISRG)支持,签发的免费证书被各个主流浏览器认可。任何域名持有人均可使用 Let’s Encrypt 申请免费证书来加密网站流量,公司、机构则建议付费获取 OV、EV 证书。
域名没备案且 VPS 在国内,可能无法申请成功,解决办法请参考 这里
要获得 Let’s Encrypt 颁发的证书,需要首先安装 certbot ,这里通过 python3 安装:
1 2
| python3 -m pip install certbot --default-timeout=600 -i https://pypi.tuna.tsinghua.edu.cn/simple
|
然后通过此命令申请域名的 HTTPS 证书(注意替换 YOUR_DOMAIN):
1 2 3
|
/usr/local/bin/certbot certonly --standalone -d YOUR_DOMAIN -d www.YOUR_DOMAIN
|
注:若是更换过域名,需要先删除 /etc/letsencrypt/live/旧域名
和 /etc/letsencrypt/renewal/旧域名.conf
,否则无法生成新域名的证书。
证书默认的有效期为 90 天,在到期前的 30 天可以重新执行以下命令为更新证书有效期:
1 2
| /usr/local/bin/certbot renew
|
但是每次都手动更新会比较麻烦,可以将其设置到 crontab 自动更新证书:
1 2 3 4 5
| crontab -e
0 0 1 */2 0 /usr/local/bin/certbot renew
|
certbot 申请的证书存储在 /etc/letsencrypt
目录:
- 其他目录为 certbot 的注册账号信息
archive/YOUR_DOMAIN/
: 存储 YOUR_DOMAIN 域名申请过的历史证书
live/YOUR_DOMAIN/
: 存储 YOUR_DOMAIN 域名当前有效证书的链接文件
之后会用到的只有两个文件:
/etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem
/etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem