自建最强科学上网4:NaiveProxy + Caddy

【美博翻墙2019.12.30】NaiveProxy是比较新的代理项目,与trojan类似也采用HTTPS协议,但有其独到特点,NaiveProxy可减轻流量指纹识别(特征)、主动探测和数据包长度分析的GFW审查带来的风险,就是说更难被墙检测和封锁。而且,设置比v2ray、trojan还要简略一些,目前网上NaiveProxy+Caddy的构建详细教程极少,美博测试后发布此方法与网友分享。

NaïveProxy简介【美博根据原文翻译】

注:官方项目使用的是这个词 NaïveProxy,i上面是二点,为了方便书写本文还是通用为 NaiveProxy。

据官方介绍:NaiveProxy 使用Chrome的网络堆栈来伪装流量,与自定义的网络堆栈(如:Shadowsocks、V2Ray,手工Golang堆栈)相比,具有更强的抗审查能力和更低的可检测性。复用Chrome堆栈使得NaïveProxy在(代理)性能和安全方面有最佳的表现。

NaïveProxy可缓解以下几种方式的流量攻击:

# 网站指纹识别/流量分类:通过HTTP/2中的流量复用来缓解。
# TLS参数指纹识别:因复用Chrome的网络堆栈而不能识别。
# 主动探测:被前端应用所克制,即将代理服务器隐藏在具有应用程序层路由的常用前端后面。(美博注:这应是指反向代理)
# 基于数据包长度的流量分析:通过长度充填来减免。

原理是:【浏览器 → Naïve(客户端)】→ GFW墙(审查员)→ 【前端 → Naïve(服务器)】 → 互联网

NaiveProxy 使用Chrome的网络堆栈,GFW墙(审查器)拦截的流量行为与Chrome和标准前端(例Caddy,HAProxy)之间的常规HTTP/2流量相同,没有特征信号。前端还会将未经身份验证的用户和活动探针重新路由到后端HTTP服务器,从而使得无法检测到代理的存在,即:探测Probe → 前端服务器 → index.html(网页)。(美博注:这个部份在v2ray、trojan也都有实现)

-------------
美博园(allinfa.com)发布的几个目前最好的自建代理,可自行选择使用:
自建最强科学上网4:NaiveProxy + Caddy - 美博园
自建最强科学上网3:trojan + Caddy - 美博园
自建最强科学上网2:V2ray+Caddy+Tls+WebSocket - 美博园
美博园(allinfa.com)认为这几个组合都是目前翻墙思路最好、最强的翻墙方法,可等同使用。
-------------

本方法的NaiveProxy代理构建的系统要求:Ubuntu ≧ 16.04 or Debian ≧ 9,建议使用 Debian 10

本文有关的几个概念介绍:

NaiveProxy:以常见的https协议和Chrome的网络堆栈技术构建的绕过网络限制、审查、翻墙的工具。
Caddy:作为部署代理的前端web服务器。
HTTP/2(H2):是互联网HTTP网络协议的主要修订版。它源自Google最初开发的实验SPDY协议。
TLS:安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。
反向代理:相对正向代理而言,真实的web服务器受到保护、对外不可见,外网只能看到反向代理,而反向代理服务器上并没有真实数据,从而保护web服务器的资源安全,并可加速网站访问速度等。

本教程按照实际制作过程進行描述:

为方便网友搭建,前面的步骤、命令、文件结构美博尽量做到与前文方法保持一致。

一、选择 VPS 服务器并安装系统

购买VPS并安装系统,请见教程:

自己搭建代理服务器:VPS的选择
自己搭建代理服务器:Vultr VPS 购买图文教程
自己搭建代理服务器:Vultr VPS 系统安装图文教程

请记住VPS安装系统后得到的: ip地址 密码 用户名(默认是root),后面会用到。

二、购买域名并设置与服务器ip关联

请参考教程:

自己搭建代理服务器:域名购买及设置与ip服务器关联

域名是为了建立网站(网页)用的,本方法实际建立一个网站(网页),将翻墙代理隐身其中,翻墙就像是实实在在的在浏览网站,消除代理的特征信号,提高翻墙代理安全性,这样的思路一直以前的翻墙软件难以实现的,NaiveProxy也实现了这个愿望,成为目前最好的翻墙方法系列之一。

三、用SSH工具连接VPS服务器

用SSH工具连接VPS服务器后,可以输入各种指令(命令)来安装系统、安装各种应用程序

在自家电脑上通过安全的SSH连接到远端的VPS服务器,就可以发出各种指令(命令)来安装系统、安装各种应用程序,包括建立代理的各种组件等等。在电脑上安装XShell软件来实现SSH连接非常方便,美博园推荐这个工具。

请参考:SSH连接软件-Xshell下载及使用教程

如果你使用的是Linux或macOS系统,本身就内置有SSH链接的终端模拟器,无需下载额外的软件。

=========== 几点说明 =========

#  本文方法以root用户来构建,建议不熟悉改变命令的网友不要自建用户,否则此法的很多命令将不可用。
#  新手注意:以下命令都是在英文半角输入完成,电脑的输入法不要处于中文输入状态,以免无意输入中文字符出错。
#  在执行下面各种命令时,首先都是要以root用户登录SSH连接VPS服务器,然后输入各种命令来执行。
#  下面的步骤,如果不明白其中命令的含义没有关系,请按照下面的全部顺序,有的步骤是不能移动顺序的,一步一步输入命令完成即可。

==============================

四、更新及优化系统

购买VPS时已经选择了安装系统,首先我们要输入指令更新系统:

4-1、更新系统

依次输入【每输入一行都要回车(按[Enter])】:

apt update
apt upgrade

注:以下每个命令输入后都要按[Enter] 回车执行,下面不再重复注明。

4-2、调整系统控制参数

输入

nano /etc/sysctl.conf

为代理服务器优化配置,将以下配置内容粘贴到上面命令打开的/etc/sysctl.conf的 #绿色光标处,象这样子:
自建最强科学上网4:NaiveProxy + Caddy

#绿色光标在粘贴插入配置文件后处于加入内容的尾端,可按回车将#光标另立分行。

# max open files
fs.file-max = 51200
# max read buffer
net.core.rmem_max = 67108864
# max write buffer
net.core.wmem_max = 67108864
# default read buffer
net.core.rmem_default = 65536
# default write buffer
net.core.wmem_default = 65536
# max processor input queue
net.core.netdev_max_backlog = 4096
# max backlog
net.core.somaxconn = 4096
# resist SYN flood attacks
net.ipv4.tcp_syncookies = 1
# reuse timewait sockets when safe
net.ipv4.tcp_tw_reuse = 1
# turn off fast timewait sockets recycling
net.ipv4.tcp_tw_recycle = 0
# short FIN timeout
net.ipv4.tcp_fin_timeout = 30
# short keepalive time
net.ipv4.tcp_keepalive_time = 1200
# outbound port range
net.ipv4.ip_local_port_range = 10000 65000
# max SYN backlog
net.ipv4.tcp_max_syn_backlog = 4096
# max timewait sockets held by system simultaneously
net.ipv4.tcp_max_tw_buckets = 5000
# TCP receive buffer
net.ipv4.tcp_rmem = 4096 87380 67108864
# TCP write buffer
net.ipv4.tcp_wmem = 4096 65536 67108864
# turn on path MTU discovery
net.ipv4.tcp_mtu_probing = 1
# for high-latency network
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control = bbr

退出nano编辑状态

注:下面凡是用到nano编辑命令的,退出nano编辑状态都是这个办法。下面不再重复说明。

输入上述内容后,退出nano编辑状态

同时按

Ctrl + X

会问你会否储存档案,按下 y 之后,再按多一次 Enter(回车)
就可以退出nano编辑状态了。

4-3、激活更改

输入:

sysctl -p

五、安装 Caddy

5-1、先安装Web数据传输实用程序curl

输入:

apt install curl

若询问
Do you want to continue? [Y/n]
就按

 y

继续安装直到完成。

5-2、安装Caddy个人使用版本

输入:

curl https://getcaddy.com | bash -s personal http.forwardproxy

会显示:
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
Caddy v1.0.4 (h1:wwuGSkUHo6RZ3oMpeTt7J09WBB87X5o+IZN4dKehcQE=)
Successfully installed(安装成功)

5-3、确定caddy文件安装在何处

输入:

whereis caddy

显示为:
root@vmi:~# whereis caddy
caddy: /usr/local/bin/caddy

5-4、赋予所有权和权限

#root拥有caddy文件防止其他账户修改
输入:

chown root:root /usr/local/bin/caddy

#修改权限为755,root可读写执行,其他账户不可写
输入:

chmod 755 /usr/local/bin/caddy

5-5、允许Caddy绑定到特权端口

#Caddy不会由root运行,使用setcap允许caddy作为用户进程绑定低号端口(服务器需要80和443)
输入:

setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

5-6、www-data的组和用户

检查名为www-data的组和用户是否已经存在
输入:

cat /etc/group | grep www-data

显示为:
root@vm:~# cat /etc/group | grep www-data
www-data:x:33:

输入:

cat /etc/passwd | grep www-data

显示为:
root@vm:~# cat /etc/passwd | grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

注意:你的显示结果与上面一样,不需要下面输入,如果显示不一样、其组和用户不存在,则需要创建它们:
输入:

groupadd -g 33 www-data

输入:

useradd -g www-data --no-user-group --home-dir /var/www --no-create-home --shell /usr/sbin/nologin --system --uid 33 www-data

5-7、为 Caddy 创建目录

#创建文件夹存储Caddy的配置文件
输入:

mkdir /etc/caddy

#创建文件夹存储Caddy所管理的站点证书
输入:

mkdir /etc/ssl/caddy

#允许root及www-data组访问相关文件,允许Caddy写入站点证书文件夹
依次输入【每输入一行都要回车(按[Enter])】:

chown -R root:root /etc/caddy
chown -R root:www-data /etc/ssl/caddy
chmod 770 /etc/ssl/caddy

#创建记录文件
依次输入【每输入一行都要回车(按[Enter])】:

touch /var/log/caddy.log
chown root:www-data /var/log/caddy.log
chmod 770 /var/log/caddy.log

六、创建网站(网页)

6-1、为您的网站创建目录

#如果默认站点根目录不存在,创建以下文件夹
输入:

mkdir -p /var/www/html

#允许www-data组拥有站点文件夹
输入:

chown -R www-data:www-data /var/www

#创建空的Caddy配置文件
输入:

touch /etc/caddy/Caddyfile

6-2、向网站添加内容

基本上有二种方式,一种是建立一个简单的网页,另一种是建立一个实实在在的简易网站,可以装一些内容。当用域名访问时,是可以看到真实内容的。美博这里先介绍创建一个简单网页的方法。建立一个简易网站的方法,美博正在编辑网页文件,完成后会在此步骤提供下载安装及方法,请留意此文的更新。

6-2-1、创建网站方法

待补充

美博考虑到安全,还是不补充了。原本在建一个简易的网站包,网友下载后安装进来就是一个像样的网站。思来想去还是觉得不安全,固定为一个网站后,GFW流氓可能抽取其中的内容作为关键词过滤,就可能有安全隐患了。

给朋友们提供一个思路去自己处理:

本方法的掩护网站建立的位置在 /var/www/html/ 目录中,其中网页启动文件是 index.html。有些了解网站的网友知道,你自己可以在网上找到很多网站模板(主题)程序,到处都有网站模板(主题)演示,下载一个模板(主题)后,把其全部文件(只要里面的内容文件,不要模板(主题)名目录)复制到 /var/www/html/ 目录中,其中的 启动文件 index.html 一定要在 html/ 目录下,不要放在其它子目录中,就OK了。

如何将本地电脑的网站模板文件上传到指定的服务器 /var/www/html/ 目录中,请参考教程:

WinSCP:连接远端服务器的管理传输工具的使用教程

建议不要变动以上的目录结构,不然就可能需要更改目录路径和重新设置安装本文一些其它步骤。

6-2-2、创建一个网页

这个方法简单,可以广泛采用这个方法。

先特别说明:里面的中文字内容,请不要千篇一律的复制,可任意改为你自己编辑的独一无二的、普通的、无敏感词的内容,如:诗词、图片、外文等等,

6-2-2-1、首先创建一个作为掩护的真正的网页
输入:

touch /var/www/html/index.html

6-2-2-2、编辑网页文件
输入:

nano /var/www/html/index.html

将以下内容粘贴到 #绿色光标处

<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1 style="font-family: sans-serif"> 这里是标题,这些中文字可改为你自己的任何语言的任何内容 </h1>
这里是网站网页正文内容,
这些中文字可改为你自己的任何语言的任何内容
添加多少内容都可以
代码部份不要改动,是一个简易网页的结构
网站网页正文内容-结束
</body>
</html>

注:图片加入的格式为:<img src="你的图片链接" />,可以加入多张图片,图文并茂更好,图片插入的位置可以在你的正文内容(即上例所示的中文字部份)的“任意”位置。

总之,就是改为你自己知道的唯一的内容, 重申:其中不要有敏感字词

然后,按回车将#光标另立分行。再同时按 Ctrl + X,再按y,退出nano编辑状态。

七、设置SystemD服务

7-1、安装SystemD服务配置,然后重新加载SystemD

美博重要提示(20200405):近期caddy改变了caddy.service源文件位置,新的路径是:
输入:

wget https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service
旧路径失效:
wget https://raw.githubusercontent.com/caddyserver/caddy/master/dist/init/linux-systemd/caddy.service

输入:

cp caddy.service /etc/systemd/system/

输入:

chown root:root /etc/systemd/system/caddy.service

输入:

chmod 644 /etc/systemd/system/caddy.service

7-2、重载systemd使其检测到新安装的Caddy服务

输入:

systemctl daemon-reload

八、配置 Caddy

8-0、产生密码

因后面配置中要用到密码,你可以自己随意写一串数字、字母、符号组合的密码,也可以通过执行下面命令随机产生一组密码。
输入:

head /dev/urandom | tr -dc a-z0-9 | head -c 16 ; echo ''

得到的密码像这样:
cal32u233ndcfu0m

不用记,只要复杂一些就好,在下面配置中要一致使用。

8-1、加入Caddy配置文件

输入:

nano /etc/caddy/Caddyfile

请注意,先要修改下面紫红色标记的“域名”、“信箱”为你自己的资料(下面有详细说明)

然后再将内容粘贴到 #绿色光标处

这里举例用一个二级域名 np.abcdef.com

np.abcdef.com
root /var/www/html
tls 12345@gmail.com
forwardproxy {
    basicauth 你的用户名 你的密码
    hide_ip
    hide_via
    probe_resistance
    upstream http://127.0.0.1:8080
}

然后,同时按 Ctrl + X,再按y,退出nano编辑状态。

说明:
1)np.abcdef.com:要改为你自己的域名,若是这样的二级域名,其正确解析请参考前文【自己搭建代理服务器:域名购买及设置与ip服务器关联】;
2)12345@gmail.com:要改为你自己的邮箱,Caddy将自动与Let's Encrypt联系以获取SSL证书并在90天到期后自动更新证书;
3)你的用户名:随机填写你自己的,数字字母组合随意;
4)你的密码:这里就要用到上一步随机产生的密码;
即:这句 basicauth 你的用户名 你的密码,实际写出来就是这样子:basicauth myuserid cal32u233ndcfu0m
注意格式,中间都有一个半角英文空格
5)Caddy将自动与Let's Encrypt联系以获取SSL证书。它将证书和密钥放在“/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你自己的域名/” 目录中;
6)此文件保存后,Caddy会随即向Let's Encrypt发出SSL证书申请,一般很快在一分钟就可完成,但可能有人会遇到特殊情况比较久一些才会完成。

8-2、赋予Caddy配置文件权限

#将您的Caddy配置文件复制到正确的目录中:
输入:

cp ~/Caddyfile /etc/caddy/

#给它适当的所有权和权限:
输入:

chown root:root /etc/caddy/Caddyfile

输入:

chmod 644 /etc/caddy/Caddyfile

8-3、启动Caddy

#启动Caddy
输入:

systemctl start caddy

8-4、检查SSL证书是否生效及效果

上面Caddy配置是否生效,SSL证书是否已经生成,到这里要进行检查,这在NaiveProxy构建时是需要做的。因为SSL证书没有生成,后面是不能成功搭建NaiveProxy代理的。而且,上面这一步的Caddyfile配置是专为你的域名生成证书,在后面会删除这个设置,所以,这一步一定要检查SSL证书已经生成才可以往下面的步骤走。

检查很简单,就是在浏览器中用 https://你的域名,如果已经可以访问你的网站,显示你自己建的网站内容,就表明SSL已经安装成功了。

因有时SSL证书申请要等几分钟,如果没有马上生效,可稍等一下。

如果要進一步看看SSL效果,可以在 SSL Labs网站查看

https://www.ssllabs.com/ssltest/

在其中输入自己的域名,可以检测一下https配置评分。

8-5、检查Caddy启动状态

要检查Caddy是否正在运行并且正在侦听端口80和443,可输入:

systemctl status caddy

你应该看到这样子的结果,如看到如下绿色字 active (running),表明 caddy已经启动:
自建最强科学上网4:NaiveProxy + Caddy

8-6、自启动Caddy

若上一步启动无问题则可启用开机自启动Caddy
输入:

systemctl enable caddy

8-7、若Caddy没有正常启动的记录查看

注意:如果Caddy无法正常启动,则可以查看日志数据以帮助找出问题。如果已经启动,不需要此步检查。
输入:

journalctl --boot -u caddy.service

九、安装 NaiveProxy

9-1、先安装组件

输入:

apt install libnss3

9-2、安装 NaiveProxy

这个需要先到NaiveProxy官网(Github 页面)去查看最新版本,文件要根据你的系统是什么来选择,修改下面命令的版本号才能安装到最新版:

打开其官方页面:

https://github.com/klzgrad/naiveproxy/releases

可见有版本号,如目前最新版是 v79.0.3945.79-2,我们选择 这个 naiveproxy-v79.0.3945.79-2-linux-x64.tar.xz
你可以在官网这个文件上点右键复制其下载链接,也可以直接将版本号复制出来替换下面命令中的版本号,即:

自建最强科学上网4:NaiveProxy + Caddy

特别说明:我们这里举例的naiveproxy版本号 v79.0.3945.79-2,如何你使用的是自己选择的版本号,请记得在下面几个步骤里要修改为相应的版本号)

先执行如下命令:

wget https://github.com/klzgrad/naiveproxy/releases/download/v79.0.3945.79-2/naiveproxy-v79.0.3945.79-2-linux-x64.tar.xz (注:此步要修改为你自己的版本号)

然后输入命令解压缩:
输入:

apt install xz-utils
tar -xf naiveproxy-v79.0.3945.79-2-linux-x64.tar.xz(注:此步要修改为你自己的版本号)

9-3、配置SystemD服务文件

# 转到解压缩的文件目录

输入:

cd naiveproxy-v79.0.3945.79-2-linux-x64 (注:此步要修改为你自己的版本号)

# 复制naive二进制命令

输入:

cp naive /usr/local/bin

# 创建SystemD服务文件

用编辑器打开,输入:

nano /etc/systemd/system/naive.service

将下面内容,不需要修改,直接复制進去:

[Unit]
Description=NaiveProxy Server Service
After=network-online.target

[Service]
Type=simple
User=nobody
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
ExecStart=/usr/local/bin/naive /etc/naive/config.json

[Install]
WantedBy=multi-user.target

然后,同时按 Ctrl + X,再按y,退出nano编辑状态。

# 退出目录

输入:

cd

# 重新加载SystemD配置

输入:

systemctl daemon-reload

十一、NaiveProxy服务器端配置

(一)服务器配置文件修改

# 产生配置空文件

输入:

mkdir /etc/naive

# 编辑器打开配置文件config.json

nano /etc/naive/config.json

将下面的内容复制、粘贴到绿色光标处,通用的,不需要修改:


{
"listen": "http://127.0.0.1:8080",
"padding": true
}

然后,同时按 Ctrl + X,再按y,退出nano编辑状态。

说明:这里可以看出,NaiveProxy的配置文件比v2ray和trojan要简单许多。这个意思是:在NaiveProxy服务器上,配置侦听端口为8080,这是Caddy将传递经过身份验证的数据流量的位置。

(四)启动 NaiveProxy

# 开启自启动

输入:

systemctl enable naive

显示为:
root@vm:~# systemctl enable naive
Created symlink /etc/systemd/system/multi-user.target.wants/naive.service → /etc/systemd/system/naive.service.

# 启动 NaiveProxy

输入:

systemctl start naive

# 查看启动是否成功

输入:

systemctl status naive

如图,若显示为绿色的“active”表示NaiveProxy已经成功启动

自建最强科学上网4:NaiveProxy + Caddy

# 若不能启动,请查看错误日志

(已经正常启动不需此输入)
输入:

journalctl -fu naive

十二、防火墙简易设置

为了增强安全性,下面介绍防火墙的简易设置,请接着上面的步骤继续完成下面的设置。
不过美博觉得这个防火墙可设置也可不设置,因为你的自建代理本来就是隐蔽在运行。如果要進一步增强安全性,当然是可以设置的。

请根据你的系统是 Ubuntu 或 debian 来选择设置,二者防火墙设置方式不同。

12-1、Debian 系统 开启防火墙及端口设置

如果你使用的是 Debian 系统,请按照下面的设置,不适用于Ubuntu系统和Centos系统

1)安装UFW
Debian默认不安装UFW,使用apt安装:

apt install ufw

2)设置默认策略
要设置UFW使用的默认值,使用以下命令:

ufw default deny incoming

再输入

ufw default allow outgoing

3)允许SSH连接
允许端口22上的所有连接

ufw allow 22

如果将SSH使用其他端口,则必须指定相应的端口。例如,如果SSH服务器正在监听端口2222 ,则可以使用此命令允许该端口上的连接:

ufw allow 2222

4)启用UFW
在允许了SSH后,才启用UFW,不然SSH连接会断开
要启用UFW,使用以下命令:

ufw enable

会询问是否安装,
root@v3:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

请输入 y

完成安装会显示:
Firewall is active and enabled on system startup

5)打开常用端口

翻墙会用到 端口80、443、 8080
依次输入【每输入一行都要回车(按[Enter])】:

ufw allow 80
ufw allow 443
ufw allow 8080

注意:NaiveProxy需打开8080端口

12-2、Ubuntu 系统 开启防火墙及端口设置

如果你使用的是 Ubuntu 系统,请按照下面的设置,不适用于Debian系统和Centos系统

因我们只是用于翻墙,需要打开这几个端口 port: 22, 80, 443

    22 / TCP(入站/出站):标准SSH端口
    80 / TCP(入站/出站):标准HTTP端口
    443 / TCP(入站/出站):标准HTTPS端口

用下面的命令打开这几个 port

依次输入【每输入一行都要回车(按[Enter])】以下指令:

ufw allow 22
ufw allow 80
ufw allow 443
ufw allow 8080

注意:NaiveProxy需打开8080端口

再输入命令启用防火墙

ufw enable

会提问:
root@vu:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?</pre>
问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,
<pre>按下 y
回车

就可以了。

至此,防火墙设置完成

==============

至此,服务器端设置全部完成

1、退出SSH

退出 SSH 连接
输入:

exit

或者 直接关闭 X-shell

2、关于修改服务器配置

上述设置一切都完成后,一般不需要修改就可以稳定运行。
如果你自己想修改配置,如域名、密码等等,都是可以修改的,但是修改完成后,记得重启NaiveProxy服务端即可,同时客户端的资料也要同步修改。
重启NaiveProxy服务
输入:

systemctl restart naive

修改配置也需重新加载配置文件
输入:

systemctl daemon-reload

==============

十三、NaiveProxy客户端下载、配置及使用方法

在服务器端搭建好NaiveProxy代理服务器后,我们还需在自己的电脑即客户端上使用。

13-1、客户端软件下载

NaiveProxy官方也提供了客户端软件,与上述服务器端安装文件在一起,即:

打开其官方页面:

https://github.com/klzgrad/naiveproxy/releases

可见最新版,根据自己的系统来选择客户端,比如:win10系统,选择naiveproxy-v79.0.3945.79-1-win-x64.zip

自建最强科学上网4:NaiveProxy + Caddy

因是较新的工具,图形界面客户端还没有,官方发布的这个客户端软件,只有dos黑框,里面可显示数据连接状况。

下载后解压,得到文件夹,

自建最强科学上网4:NaiveProxy + Caddy

其中文件包括:
config.json : 这个就是客户端配置文件,
naive.exe : 这是NaiveProxy客户端执行文件,

13-2、客户端配置文件

这个客户端配置文件需要自己编辑,用文本编辑器打开config.json

里面是这样:

{
  "listen": "socks://127.0.0.1:1080",
  "proxy": "https://user:pass@domain.example",
  "log": ""
}
注:上面配置里user、pass、domain.example要修改为你自己的,并与【8-1、加入Caddy配置文件】中设置内容一致

user:是你设置的 “你的用户名”
pass:是你设置的 “你的密码”
domain.example:是你使用的域名,注意格式,不要少了域名前面那个 @

修改后就会像这样子:


{
"listen": "socks://127.0.0.1:1080",
"proxy": "https://useridfuyin:cal32u233ndcfu0m@np.abcdef.com",
"padding": true,
"log": ""
}

修改后,记得保存。

注:
"log": 这个参数,若加上,会在软件中看到数据联网情况,若不加就只有一个黑框,里面没有内容。
"padding": true,  这个是必须的,它添加长度充填来混淆流量。

13-3、启动NaiveProxy

很简单,双击naive.exe,就可以启动了。

在使用代理期间,要一直保持 naive.exe 启动状态。

启动后象这样:

自建最强科学上网4:NaiveProxy + Caddy

十四、浏览器设置与代理上网

14-1、浏览器代理参数设置

这个比较简单,与本站教程设置的 v2ray、trojan 是一样的,不需要另外设置

在浏览器中设置NaiveProxy代理为: socks5 127.0.0.1:1080

请注意:

1)firefox68版,很多代理调度扩展不能使用(如 Gproxy代理扩展),美博园的Firefox纯净绿色版已经用另外的代理扩展设置有这个端口的v2ray代理,请参考:

火狐浏览器_Firefox_68.0.1esr_美博园纯净中文绿色版(更新) - 美博园

2)57版之前的旧版firefox,可以使用以下介绍的方法设置firefox浏览器代理, 但是, 切记:在新版firefox中下面的代理扩展已经不起作用!

请参考:

GProxy:火狐(firefox)浏览器简便的代理调度扩展(v2.1) - 美博园
GProxy Plus 3.0和 3.1 版:Firefox浏览器简便的代理调度扩展(20180523) - 美博园

3)、其他浏览器设置NaiveProxy代理,请参考上面介绍的firefox设置,这里不详述。

14-2、上网,查看ip

代理是不是设置好了?代理起作用没有,一般在第一次使用时应该自己验证确认一下。
方法很多,如:

美博园主页右侧栏有上网ip显示
美博园上网代理IP地址查询检测
美博园IP地理信息查询
点進去就可以看到自己当前上网的代理ip地址及相关参数。

当然,你也可以通过其他方法检验。
其他方法请参考:如何查看自己上网的ip地址? - 美博园

***
=== 自建最强代理 v2ray、trojan、NaiveProxy 系列文章参考 ===

自建最强科学上网4:NaiveProxy + Caddy - 美博园
自建最强科学上网3:trojan + Caddy - 美博园
自建最强科学上网2:V2ray+Caddy+Tls+WebSocket - 美博园
自建最强科学上网:v2ray + websocket + web + nginx (EasyEngine) - 美博园
自己搭建代理服务器:VPS的选择 - 美博园
自己搭建代理服务器:Vultr VPS 购买图文教程 - 美博园
自己搭建代理服务器:Vultr VPS 系统安装图文教程 - 美博园
自己搭建代理服务器:检测ip是否被墙及更换ip - 美博园
自己搭建代理服务器:域名购买及设置与ip服务器关联 - 美博园
SSH连接软件-Xshell下载及使用教程 - 美博园
WinSCP:连接远端服务器的管理传输工具的使用教程 - 美博园
v2ray客户端代理上网 - Windows、Android、Mac、ios - 美博园
Let's Encrypt SSL 证书安装不了的若干问题解决 - 美博园
如何开启Google TCP BBR 加速 - 美博园
V2ray自建代理遇到的一些问题及解决 - 美博园
原文链接:https://allinfa.com/naiveproxy-caddy.html
原文标题:自建最强科学上网4:NaiveProxy + Caddy - 美博园
※ 除声明转载,美博园文章均为"原创",软件版权归原作者,转载请以上面超链接注明来源!

本文TinyURL短网址: http://tinyurl.com/u9oke49

网 友 留 言

19条评论 in “自建最强科学上网4:NaiveProxy + Caddy”
  1. sadas says:

    能搞个一键安装脚本就好了

  2. mr says:

    #将您的Caddy配置文件复制到正确的目录中:
    输入:
    ?# cp ~/Caddyfile /etc/caddy/
    ---------------------------------
    以上不理解哦,请问打“?”的地方目录在哪?

  3. xssa says:

    用几小时就要重启naive服务才能 正常使用是什么原因

  4. xssa says:

    少个xz解压文件步骤

  5. lgi says:

    建议推出一键脚本,方便小白使用,谢谢!

  6. boin says:

    刚开始在想为什么要用basic auth呢,后来转念一想,如果平常直接访问打开的是网站页面,应该是没什么问题的,但是如果有人故意用basic auth去测试,会不会有暴露的可能?还没用,所以具体的也不了解

    • 美博园 says:

      @boin
      用之后有什么更好的办法,欢迎一起来完善。
      这几个自建,有一个基本要求就是“不要公开”,自己的域名和ip不是公开的,汇入茫茫网流之中才是安全的。以前即使是不公开因为翻墙软件的种种特称也可能被GFW探测,现在的方法进步在于尽量消除了被探测的可能,不是伪装而是实实在在的网站,真正的服务器被隐藏。
      但,这个网站也不要公开,这就是美博考虑文中不公布一个网站供大家下载的一个原因,
      如果,ip和域名公开了,那GFW针对个别动手就是易如反掌的。

  7. li says:

    请教这一步执行有问题,怎么办?
    root@naive:~# cp ~/Caddyfile /etc/caddy/
    cp: cannot stat '/root/Caddyfile': No such file or directory

这里是你留言评论的地方

9 + 0 =

【您可以使用 Ctrl+Enter 快速发送】

Copyright © 2007 - 2020 , Design by 美博园. 版权所有. 若有版权问题请留言通知本站管理员. 【回到顶部】