本文章主要记录一些VPS的设置,使得购买的VPS及域名能够支持科学上网,服务器为Ubuntu 20.04。在执行任何操作之前,切换到/root
目录,并使用apt update && apt upgrade
来更新系统。
事前准备
apt install vim git curl wget -y
设置时区
timedatectl set-timezone Asia/Shanghai
将Cloudflare中SSL/TLS加密模式设置为完全(严格)
。
启用 BBR TCP 拥塞控制算法:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.confsysctl -p
设置密钥登陆
生成密钥
连接到服务器后,使用ssh-keygen
来生成密钥,并把私钥保存到本地。
使用mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
更改公钥名称。使用如下命令来更改权限:
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys
修改登录方式
使用vim /etc/ssh/sshd_config
来修改SSH配置文件,将PasswordAuthentication
改为no
,将PubkeyAuthentication
改为yes
,并systemctl restart ssh
重启SSH服务。
安装NaiveProxy
根据项目官方地址的介绍进行如下步骤安装。
编译Naiveproxy
安装Go
语言环境
ubantu下使用sudo apt install golang-go
指令安装go环境,安装过程没有报错,在使用时无法识别指令。
是因为未完整安装go环境,使用apt安装的版本可能会比较老。使用如下命令安装:
apt-get install software-properties-commonadd-apt-repository ppa:longsleep/golang-backportsapt-get updateapt-get install golang-go -y
测试:
go version
安装NaiveProxy
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive
下载预编译Naiveproxy
在下载地址查找最新版的下载地址并复制:
wget https://github.com/path-to-download/caddy-forwardproxy-naive.tar.xztar -xvf caddy-forwardproxy-naive.tar.xzmv /root/caddy-forwardproxy-naive/caddy /root/caddy
寻找合适的伪装站
示例关键字:intext:登录 Cloudreve
配置NaiveProxy
在编译好的caddy
文件所在目录下创建Caddyfile
文件,内容如下:
{ order forward_proxy before file_server order forward_proxy before reverse_proxy}
:443, example.com { forward_proxy { basic_auth user pass # 设置用户名和密码 hide_ip hide_via probe_resistance } # 支持多用户 forward_proxy { basic_auth user2 pass2 # 用户名和密码 hide_ip hide_via probe_resistance } # 本地网站(与伪装网站二选一) file_server { root /var/www/html } # 伪装网址 reverse_proxy https://demo.cloudreve.org { header_up Host {upstream_hostport} header_up X-Forwarded-Host {host} }}
运行NaiveProxy
前台运行caddy:./caddy run
后台运行caddy:./caddy start
停止caddy:./caddy stop
重载配置:./caddy reload
Caddy配置守护进程(开机自启)
根据官方文档进行配置。
准备工作
- Caddy的二进制文件(/root/caddy)
- Caddy的配置文件(/root/Caddyfile)
- root权限
systemctl --version
>= 232
移动文件
chmod +x /root/caddymv /root/caddy /usr/bin/
mkdir /etc/caddymv /root/Caddyfile /etc/caddy/
检查是否有效:
/usr/bin/caddy run --config /etc/caddy/Caddyfile
创建用户
groupadd --system caddyuseradd --system \ --gid caddy \ --create-home \ --home-dir /var/lib/caddy \ --shell /usr/sbin/nologin \ --comment "Caddy web server" \ caddy
创建服务文件
在/etc/systemd/system/
目录下创建caddy.service
文件,vim /etc/systemd/system/caddy.service
内容如下:
[Unit]Description=CaddyDocumentation=https://caddyserver.com/docs/After=network.target network-online.targetRequires=network-online.target
[Service]User=caddyGroup=caddyExecStart=/usr/bin/caddy run --environ --config /etc/caddy/CaddyfileExecReload=/usr/bin/caddy reload --config /etc/caddy/CaddyfileTimeoutStopSec=5sLimitNOFILE=1048576LimitNPROC=512PrivateTmp=trueProtectSystem=fullAmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]WantedBy=multi-user.target
最后测试
使用systemd
启动Caddy服务:
systemctl daemon-reloadsystemctl enable caddysystemctl start caddy
检查当前状态:
systemctl status caddy
使用更改的配置文件重新加载:
systemctl reload caddy