生活在大陆的朋友,上网时经常遇到某些网站打不开情况,特别是作为一个程序员使用的很多开源软件都是老外编写的,而且很多文档都需要通过某些特殊方式才能正常访问,并且某些访问例如 PayPal 、Netflix 、目前大火的 ChatGPT 服务,不光是开代理服务器就能访问的,要需要原生 IP 支持才能正常访问。本篇博客讲介绍如何安装加密网络代理软件,不要用于非法用途,不要在网络上讨论一些特殊东西,绿色上网。
安装代理软件
建议操作系统使用 Ubuntu 版本,原生 IP 需要使用 Warp ,而 Warp 目前支持最为完善的是 Ubuntu 系统,为了网络不拥塞,我们使用使用 Google BBR 算法,目前在最新的 Linux 的内核中已经集成了,只需通过下面的命令开启:
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
# 查看是否开启了
sysctl -p
接下来我们要安装一个加密通信软件 trojan ,trojan 是基于 https 的 tls 协议进行数据加密通信的,一般网络上的很能被中间人攻击,安装只需执行下面步骤:
# 下载软件包
wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip
# 解压软件
unzip trojan-go-linux-amd64.zip -d /root/tarjan-server
# 复制配置文件
mkdir -p /usr/share/trojan-go
cp geoip.dat /usr/share/trojan-go
cp geosite.dat /usr/share/trojan-go
最后创建一个配置文件,加入下面的内容,创建 server.yaml
配置文件:
run-type: server
local-addr: 0.0.0.0
local-port: 443
remote-addr: 127.0.0.1
remote-port: 80
password:
- your_password
ssl:
cert: your_cert.crt
key: your_key.key
sni: your-domain-name.com
router:
enabled: true
block:
- 'geoip:private'
geoip: /usr/share/trojan-go/geoip.dat
geosite: /usr/share/trojan-go/geosite.dat
为了能正常申请到 SSL 证书,需要一个 web 服务器来验证域名所有者,必须安装一个 web 服务器,执行下面命令安装 nginx 服务器:
# 安装教程
apt install -y nginx
# 设置开启启动
systemctl enable nginx
# 清理默认的文件
rm -rf /var/www/html
# 重启服务器
systemctl restart nginx
nginx 这样配置没有如何的页面和真实站点显示,需要自己配置一个反向代理站点进行展示:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
gzip on;
server {
server_name 你的域名; #你的域名
location / {
proxy_pass https://伪装网址; #伪装网址
proxy_redirect off;
proxy_ssl_server_name on;
sub_filter_once off;
sub_filter "伪装网址" $server_name;
proxy_set_header Host "伪装网址";
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Accept-Encoding "";
proxy_set_header Accept-Language "zh-CN";
}
}
server {
listen 80;
location /.well-known/ {
root /var/www/html;
}
location / {
rewrite ^(.*)$ https://$host$1 permanent;
}
}
}
最后通过 acme.sh 来自动申请 ssl 证书,这个证书会被 trojan 所使用,执行下面命令:
# 需要邮箱地址
curl https://get.acme.sh | sh -s email=你邮箱地址
# 起一个别名方便使用
alias acme.sh=~/.acme.sh/acme.sh
# 设置别名
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
# 更换签发机构
acme.sh --set-default-ca --server letsencrypt
# 申请 ssl 证书
acme.sh --issue -d 网站域名 -w 网站文件存储路径
到此基本配置完成了,需要手动配置 trojan 运行参数,这里不做介绍,自己研究。
Warp 原生 IP
Cloudflare Warp 服务可以提供原生 IP ,所谓 原生 IP
就是指该网站的 IP
地址和其机房的 IP
地址是一致的,但是,很多 IDC 提供商的 IP 都是从其它国家调配来的,这导致我们就算是翻墙了,也是使用了美国的 VPS,但是还是访问不了相关的服务。所以,我们需要使用 Cloudflare Warp 来访问这些网站。
WARP 模式是 Cloudflare 提供的一种全局代理模式,就是一个客户端的 VPN,它会将你的所有流量都通过 Cloudflare 的网络,这样就能访问到原生 IP 了。你可以使用这个一键安装的脚本来快速完成安装:
# 获取脚本
wget git.io/warp.sh
# 添加执行权限
chmod +x warp.sh
运行脚本展示中文菜单:
./warp.sh menu
先后执行如下安装:
- 安装 Cloudflare WARP 官方客户端
- 安装 WireGuard 相关组件
- 自动配置 WARP WireGuard 双栈全局网络
使用
curl ipinfo.io
命令来检查你的 IP 地址,如果显示的是 Cloudflare 的 IP 地址,那么恭喜你,你已经成功了。