自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

真相网2019.12.23】【美博翻墙2019.12.23】v2ray提供了一个优秀的科学上网平台,网友可以在其独特vmess协议上发挥创意设计出多样的翻墙方法,特别是把翻墙完全隐身于访问网站(网页)之中,提供了目前最安全的翻墙方式。本文是在前文自建最强科学上网:v2ray+websocket+web+nginx(EasyEngine) 基础上改進的又一个自建v2ray翻墙代理方法。

本文方法在 Debian、Ubuntun 系统的最新版及相近版本测试全部适用,美博建议使用 Debian 10

本方法以Caddy作为前端web服务器,是一个轻便的web部署工具,其功能与 nginx 类似。其优点是:单文件,无依赖,安全、轻量、方便;安装快速、不到30秒可创建一个 HTTPS 服务器;不受制于EE的版本限制,可广泛应用于各种系统;配置文件简洁,多站点配置、反向代理等功能都在一个 Caddyfile 文件里配置;默认启用HTTPS,自动签发免费的 Let's Encrypt https 证书并自动续约,默认支持HTTP/2(H2)网络协议;还有丰富的插件系统,可以快速配置缓存、CORS、自动拉取 Git 仓库、Markdown 支持、ip/地区过滤等功能。

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

本文有关的几个组件介绍:

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

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

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

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

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

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

再次提醒:本方法在 Debian、Ubuntun 系统的最新版及相近版本测试全部适用,建议使用 Debian 10。

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

请参考教程:

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

域名是为了建立网站(网页)用的,本方法实际建立一个网站(网页),将翻墙代理隐身其中,翻墙就像是实实在在的在浏览网站,消除代理的特征信号,提高翻墙代理安全性,这样的思路一直以前的翻墙软件难以实现的,自从v2ray发布后,众多的网友不断推進v2ray用法,目前成为最好的翻墙方法系列。

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

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

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

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

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

======= 几点通用说明 ==============

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

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

四、更新及优化系统

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

4-1、更新系统及设定时区

输入:

dpkg-reconfigure tzdata && apt update && apt -y upgrade

然后,回车执行

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

弹出窗口

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

在出现的窗口中,这里可选择时区:

用键盘上下键,选择:
–> Asia,回车
再选择
–> Hong Kong 回车

之后就会下载更新

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

安装过程中,在命令框中可看到不断的数据变化,最下方有进度显示,至100%很快完成。

4-2、时间校准

据v2ray官方介绍:对于 V2Ray,它的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以系统时间一定要正确,只要保证时间误差在90秒之内就没问题。

当然一般来说,你的电脑、VPS服务器本身是会自动调准时间的,时间一般是准确的,为了避免可能的时间误差,可以在此先调整时间。

可以执行命令 date -R 查看时间:
输入:

date -R

会显示出,如:
Sun, 22 Jan 2017 09:10:36 -0500

显示的结果中的 -0500 代表的是时区为 西5区,如果转换成 东8区时间则为 2017-01-22 22:10:36

对VPS的时间校准之后,自己的个人电脑时间也要调准,电脑时间调准这里不再赘述,网上方法很多。

然后,这里要检查的是VPS服务器和自己电脑(客户端)的“时间误差”,时区差异没有关系,因为 V2Ray 会自动转换时区,但是时间一定要准确,即时间误差在90秒之内。

也就是说:我们要重点看的是自己电脑时间的 “分”和“秒”,以及上例中的 “10:36”,比较两者相差不能超过 90秒,这是一般情况,如果两者相差在小时位,那种情况差异就很少了。

如果时间不准确,可以使用 date --set 修改时间:
如要修改时间为2017-01-22 16:16:23,则输入:

sudo date --set="2017-01-22 16:16:23"

会显示出,如:
Sun 22 Jan 16:16:23 GMT 2017

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

输入

nano /etc/sysctl.conf

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

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

# 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-4、激活更改

输入:

sysctl -p

4-5、编辑安全限制配置文件

4-5-1、将文件数限制增加到51200

输入

nano /etc/security/limits.conf

在绿色#光标处粘贴添加下面代码:

* soft nofile 51200
* hard nofile 51200

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

4-5-2、将当前文件数限制设置为51200

输入:

ulimit -SHn 51200

4-5-3、编辑永久配置文件:

输入:

nano /etc/profile

在绿色#光标处粘贴添加下面代码:

ulimit -SHn 51200

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

五、安装 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

会显示:
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

# 如果此步出现下面提示
setcap: command not found
那就安装需要 libcap2-bin
请输入:

apt install libcap2-bin

如果没有此提示,就不用此步。

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

输入:

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

八、安装V2Ray

8-1、安装V2Ray

输入:

wget https://install.direct/go.sh

输入:

bash go.sh

同前文,
在安装即将结束时,将显示默认的PORT和UUID。 看起来像这样:
PORT:33888
UUID:a1199f80-a920-437b-9531-7f86b62533a0

UUID就是密码,在下面设置服务器配置和设置客户端配置时都会用到,保存下来,这个不能错。

当然,这个PORT和UUID是自己可以随意修改的,熟练的网友可自行设置其值。不熟悉的网友,就记住这个自动生成的、直接使用就好。

8-2、编辑配置V2Ray

输入:

cp /etc/v2ray/config.json /etc/v2ray/config.json.bak

输入:

rm /etc/v2ray/config.json && nano /etc/v2ray/config.json
  请注意:
1)其中的端口(PORT) 33888 与 UUID:a1199f80-a920-437b-9531-7f86b62533a0这一串必须改为你自己上面生成的PORT和UUID。
2)务必小心不要改动到代码其它部分,包括不小心增减空格、符号、字母等等,除非你是比较熟练的网友。
3)其中的 "path": "/vv22",这个“/vv22”可以随意修改为你自己的,但要记住,在后面的配置及客户端配置时要一致就行。

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

{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 33888,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "a1199f80-a920-437b-9531-7f86b62533a0",
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/vv22"
        }
      }
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "blocked",
      "protocol": "blackhole",
      "settings": {}
    }
  ],
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked"
      }
    ]
  }
}


8-3、检查V2Ray配置文件

输入:

/usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json

如无问题,应该看到一条消息,“配置成功”"Configuration OK."。
root@vm:~# /usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json
V2Ray 4.21.3 (V2Fly, a community-driven edition of V2Ray.) Custom
A unified platform for anti-censorship.
Configuration OK.

8-4、启动和测试V2Ray

8-4-1、启动V2Ray

输入:

systemctl start v2ray

8-4-2、检查V2Ray是否正在运行(检不检查都可)

输入:

systemctl status v2ray

你应该看到这样子的结果,如看到如下绿色字 active (running),表明 v2ray已经启动:

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

注意:查看v2ray状态后,SSH窗口的命令输入光标可能消失,即:没有了 root@vultr:~#(本例如此,你的服务器vultr这个名会不同),无法输入下一个命令
这时,请参考前文:SSH连接软件-Xshell下载及使用教程 - 美博园 之 3、“打开”建立的SSH连接
即:重新打开SSH连接到服务器,就会在新建的SSH连接中出现 root@vultr:~#  ,可以输入下一个命令了。

8-4-3、检查V2Ray是否正在侦听localhost端口

这个命令,一般不用检查。
若在全新服务器上只有安装v2ray,一般是不需要检查的。
但是,有的因为服务器还安装有其它应用程序,甚至有的VPS服务器已经预装有其它服务程序,可能会占用80、443端口,那么安装v2ray可能会出错,这个命令可以检查端口运行情况。
输入:

apt install net-tools

再输入:

netstat -tulpn

九、配置 Caddy

9-1、加入Caddy配置文件

输入:

nano ~/Caddyfile

请注意,先要修改下面紫红色标记出内容为你自己的配置(下面有详细说明)

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

http://abcdef.com {
    redir https://abcdef.com{url}
}
https://abcdef.com {
    tls 12345@gmail.com
    log /var/log/caddy.log
    root /var/www/html
    proxy /vv22 127.0.0.1:33888 {         
      websocket
      header_upstream -Origin
    }
}

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

说明:
1)abcdef.com:改为你自己的域名,域名前要不要加www都可,即abcdef.com和www.abcdef.com都可以,但在所有配置中一定要一致就行;
2)12345@gmail.com:改为你自己的邮箱,Caddy将自动与Let's Encrypt联系以获取SSL证书并在90天到期后自动更新证书;
3)proxy /vv22 127.0.0.1:33888,此行的含义是:路径分流,流量转发,将443端口在/v2ray路径收到的流量转发给33888端口,在后面我们会让v2ray监听33888这个端口。这一行中
/vv22,是路径,这个路径可以是/,也可自己指定的任何字母数字组合,但一定要与上面v2ray服务器配置文件中的路径相同,以及后面的客户端配置路径相同;
33888,这个端口也要改成你自己在8-1、安装V2Ray时生成的端口;
4)Caddy将自动与Let's Encrypt联系以获取SSL证书。它将证书和密钥放在“/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你自己的域名/”目录中;
5)此文件保存后,Caddy会随即向Let's Encrypt发出SSL证书申请,一般很快在一分钟就可完成,但可能有人会遇到特殊情况比较久一些才会完成。

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

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

cp ~/Caddyfile /etc/caddy/

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

chown root:root /etc/caddy/Caddyfile

输入:

chmod 644 /etc/caddy/Caddyfile

9-3、启动Caddy

#启用Caddy
输入:

systemctl enable caddy

#启动Caddy
输入:

systemctl start caddy

9-4、检查Caddy启动状态(检不检查都可)

#检查Caddy是否正在运行并且正在侦听端口80和443上的输入:
输入:

systemctl status caddy

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

9-5、Caddy没有正常启动的记录查看

# 检查Caddy配置文件Caddyfile是否有错
输入:

caddy -agree -conf /etc/caddy/Caddyfile

# 如果Caddy无法正常启动,则可以查看日志数据以帮助找出问题:
输入:

journalctl --boot -u caddy.service

9-6、退出SSH

至此,前面所有设置完成,可以退出 SSH连接了
输入:

exit

或者 直接关闭 X-shell

十、防火墙简易设置

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

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

10-1、Ubuntu 系统 开启防火墙及端口设置

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

因我们只是用于翻墙,需要打开这几个端口 port: 22, 80, 443,和你自己的端口(本教程例举为 33888),

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

33888 / TCP(出站):连接到GPG密钥服务器端口

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

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

ufw allow 22
ufw allow 80
ufw allow 443

再次提醒下面命令的 33888 改为自己端口

ufw allow 33888

再输入命令启用防火墙

ufw enable

会提问:
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,

按下 y  再回车

就可以了。

10-2、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@v3225:~# 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、自己服务器的端口本教程的12345
依次输入【每输入一行都要回车(按[Enter])】:

ufw allow 80
ufw allow 443
ufw allow 33888

(这里的33888改为自己的v2ray服务器端口)

至此,防火墙设置完成

十一、检查网站可否访问

在浏览器地址栏输入自己的域名(举例:abcdef.com),可以看到你在“六、创建网站(网页)”创建的网站(网页)内容

如果使用Firefox浏览器,ie和chrome没有这个问题,输入域名后“可能”打不开网站,若遇到,这可能是firefox的问题,需要检查该站点是否使用HTTP/2:
打开Firefox浏览器 → 按F12打开开发人员工具 → 单击"网络"选项 → 点“重新载入”刷新页面 → 选择主要的 GET 进入你的网站。

十二、检查SSL证书是否生效及效果

如果你在上面 十一步,用 https 已经可以访问你的网站,当然 ssl 是已经安装没有问题了。

如果要進一步看看SSL效果,可以在 SSL Labs网站查看
https://www.ssllabs.com/ssltest/
在其中输入自己的域名,可以检测一下https配置评分。

十三、客户端配置 - V2RayN

我们选择用V2RayN作为windows电脑端的客户端使用程序来说明,手机及Mac电脑端设置软件不同、但参数一样,请参考:

请参考前文概述:v2ray客户端代理上网 - Windows、Android、Mac、ios

13-1、客户端软件下载,

1) 要下载v2ray官方提供的核心程序 v2ray-core

下载地址:https://github.com/v2ray/v2ray-core/releases

根据自己的系统选择相应的版本下载

是绿色软件,无需安装,可在任何地方使用,官方文件压缩包解压时最好先要生成一个文件夹,如:v2ray,将下载的v2ray-windows-64.zip全部解压到这个文件夹,但官方版没有图形界面,只有核心程序。

为了便于直观操作,还需要下载图形界面程序,如下

2) 下载图形界面程序V2RayN

如上述下载地址是:https://github.com/2dust/v2rayN/releases

下载符合自己电脑系统的最新版后,将其解压到上一步v2ray-core的同一个文件夹中,即v2ray。

即:将1)和2)的文件整合在一个文件夹中。

请注意:本程序运行需要.NET Framework 4.6及以上,
若没有请下载:https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers

3)在v2ray文件夹中找到 v2rayN.exe

双击v2rayN.exe,即可启动v2ray

13-2、配置参数:

主要有二个页面需要设置:

1)服务器参数设置

打开(启动)v2rayN程序,“服务器”栏目设置,如下图:

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

本方法的客户端配置参数,略有修改,如图所示:

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

按照上图填写好自己的v2ray参数后,点“确定”,就会生成客户端的配置文件config.json。

其中的参数填写,必须与上面服务器配置的参数完全相同。

2)“参数设置”栏自定义设置浏览器代理端口

仍然在v2rayN打开状态下,点上面的“参数设置”,只有一处自己设置,就是设置本地监听端口,即浏览器的v2ray代理端口,v2rayN程序默认的这个端口是 10808,可以自定义设置任意端口号,一般比较大的数较好,其余部份都可用默认的。

如下图所示,记住设置完成后要点最下面的 “确认”

自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

说明:这里设置的端口,如设置为 1080,那么v2rayN程序会自动将这个端口写入客户端配置文件中,所以,浏览器设置的v2ray代理端口一定与其一致,否则不能联网,即:浏览器设置的代理为 127.0.0.1:1080

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

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

接上,假如在 v2rayN设置的本地监听(浏览器代理)端口为 1080 ,那么在浏览器中设置v2ray代理为: 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)、其他浏览器设置v2ray代理,请参考上面介绍的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自建代理遇到的一些问题及解决 - 美博园
◇ 一键分享: . . .. . . . .. . . .. . . . . .. . . . . . . . . .
◇ 中文分享: . . .. . . . . . . . .. . . . . .

这里是你留言评论的地方

7 + 9 =

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

Copyright © 2007 - 2020 , Design by 真相网. 本站资料可以免费自由转载. 若有版权问题请留言通知本站管理员. 【回到顶部】