715 字
4 分钟
NaiveProxy的配置

本文章主要记录一些VPS的设置,使得购买的VPS及域名能够支持科学上网,服务器为Ubuntu 20.04。在执行任何操作之前,切换到/root目录,并使用apt update && apt upgrade来更新系统。

事前准备#

Terminal window
apt install vim git curl wget -y

设置时区

Terminal window
timedatectl set-timezone Asia/Shanghai

将Cloudflare中SSL/TLS加密模式设置为完全(严格)

启用 BBR TCP 拥塞控制算法:

Terminal window
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

设置密钥登陆#

生成密钥#

连接到服务器后,使用ssh-keygen来生成密钥,并把私钥保存到本地。

使用mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys更改公钥名称。使用如下命令来更改权限:

Terminal window
chmod 700 ~/.ssh
chmod 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安装的版本可能会比较老。使用如下命令安装:

Terminal window
apt-get install software-properties-common
add-apt-repository ppa:longsleep/golang-backports
apt-get update
apt-get install golang-go -y

测试:

Terminal window
go version

安装NaiveProxy#

Terminal window
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#

下载地址查找最新版的下载地址并复制:

Terminal window
wget https://github.com/path-to-download/caddy-forwardproxy-naive.tar.xz
tar -xvf caddy-forwardproxy-naive.tar.xz
mv /root/caddy-forwardproxy-naive/caddy /root/caddy

寻找合适的伪装站#

示例关键字:intext:登录 Cloudreve

配置NaiveProxy#

在编译好的caddy文件所在目录下创建Caddyfile文件,内容如下:

Terminal window
{
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

移动文件#

Terminal window
chmod +x /root/caddy
mv /root/caddy /usr/bin/
mkdir /etc/caddy
mv /root/Caddyfile /etc/caddy/

检查是否有效:

Terminal window
/usr/bin/caddy run --config /etc/caddy/Caddyfile

创建用户#

Terminal window
groupadd --system caddy
useradd --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内容如下:

Terminal window
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target

最后测试#

使用systemd启动Caddy服务:

Terminal window
systemctl daemon-reload
systemctl enable caddy
systemctl start caddy

检查当前状态:

Terminal window
systemctl status caddy

使用更改的配置文件重新加载:

Terminal window
systemctl reload caddy
NaiveProxy的配置
https://blog.xiaobaizhang.top/posts/naiveproxy/
作者
张小白
发布于
2023-07-16
许可协议
CC BY-NC-SA 4.0