step 1 买个VPS

链接:https://my.vultr.com/

5刀一月1000G

Tokyo -> CentOS 9 Stream x64 -> 25GB SSD -> disable auto backup -> **enable IPv6(important)

买完测试一下ping IPv6地址

step 2 购买域名+获取ssl证书

买域名就不说了

买完后把域名解析到之前买的vps的IPv4v6地址(建议用二级域名,不影响域名正常用途)

然后上这个网站 freessl.cn 申请ssl证书

输入域名
按照要求,再配置一下域名的解析
最后在服务器运行如下代码(先得装一下acme.sh,这个网站上有教程)
acme.sh --install-cert -d tj.kkeevviinnn.com \
--key-file       /usr/src/trojan-cert/private.key  \
--fullchain-file /usr/src/trojan-cert/fullchain.cer \
--reloadcmd     "service nginx force-reload"

最后再运行如上代码就可以自动在上述地址中生成ssl证书了。(记得把域名改成自己的)

step 3 nginx+trojan-go 服务端安装及配置

yum -y install nginx
vim /etc/nginx/nginx.conf

把 nginx 配置文件做如下修改

user  root;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '\$remote_addr - \$remote_user [\$time_local] "\$request" '
                      '\$status \$body_bytes_sent "\$http_referer" '
                      '"\$http_user_agent" "\$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  120;
    client_max_body_size 20m;
    #gzip  on;
    server {
        listen       80;
        server_name  tj.kkeevviinnn.com;
        root /usr/share/nginx/html;
        index index.php index.html index.htm;
    }
    server {
        listen 9000;
        location / {
            return 400;
        }
    }
}

其中服务器的80和9000端口可能得提前开启,不然默认是关闭的,顺便把443也开了

firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --add-port=443/tcp --zone=public --permanent
firewall-cmd --add-port=9000/tcp --zone=public --permanent

开完重启vps

然后设置伪装站点

rm -rf /usr/share/nginx/html/*   #删除目录原有文件
cd /usr/share/nginx/html/    #进入站点更目录
wget https://github.com/V2RaySSR/Trojan/raw/master/web.zip
unzip web.zip    #也可以上传自己的网站
systemctl restart nginx.service

接下来是Trojan-go

在这下载最新的包 https://github.com/p4gefau1t/trojan-go/releases

在服务器任意目录下解压开

创建 server.json 文件如下(记得改密码)

{
	"run_type": "server",
	"local_addr": "0.0.0.0",
	"local_port": 443,
	"remote_addr": "127.0.0.1",
	"remote_port": 80,
	"password": [
		"your_own_password",
		"available_for_multi_user"
	],
	"ssl": {
		"cert": "/usr/src/trojan-cert/fullchain.cer",
		"key": "/usr/src/trojan-cert/private.key",
		"fallback_port": 9000
	}
}

运行 Trojan-go

./trojan-go -config ./server.json

至此,服务器上需要做的事情就做完了

step 4 windows客户端配置

下载:

  1. Qv2ray https://github.com/Qv2ray/Qv2ray/releases/download/v2.6.3/Qv2ray.v2.6.3.Windows-x64.7z
  2. V2ray官方内核 https://github.com/v2ray/v2ray-core/releases/download/v4.27.0/v2ray-windows-64.zip
  3. Qv2ray Trojan-go插件 https://github.com/Qv2ray/QvPlugin-Trojan-Go/releases/download/v1.0.1/QvTrojanGoPlugin.v1.0.1.Windows-x64.dll
  4. Trojan-go核心win版 https://github.com/p4gefau1t/trojan-go/releases

为Qv2ray添加V2ray官方内核

  1. Qv2ray下载完成后解压,运行其中的qv2ray.exe,之后打开Qv2ray所在目录,找到自动生成的config文件夹。
  2. 在config文件夹中,新建一个文件夹,命名为vcore。
  3. 把下载好的v2ray内核解压,将其中所有文件,移动至刚才新建好的的vcore文件夹中。
  4. 以上操作完成后,V2ray官方内核即成功添加。

为Qv2ray安装插件,以支持V2ray以外的代理协议

  1. 在Qv2ray目录下的config文件夹下,找到并打开plugins文件夹(找不到的话自己新建)。
  2. 把下载好的Qv2ray插件解压,将其中的相应插件,移动至plugins文件夹中。
  3. 如果你的Qv2ray已经在运行中,那么右键点击系统托盘图标,将其退出。
  4. 重新运行Qv2ray,即可在插件菜单下,看到刚才添加好的插件
  5. 然后在插件页面为Trojan-go插件添加trojan-go.exe核心

添加代理服务器

如上设置

然后就可以用啦

step 5 路由器篇

等我路由器到了,再更新下一期

目前方法局限性很强,qv2ray只能代理http和socks,导致普通的ssh不了,我想用pc给手机开热点也不行。

参考资料

  1. https://www.jixing.one/vps/get-a-vps/
  2. https://trojan123.com/index.php/2020/03/29/centos-trojan-shoudong-fangshi2/
  3. https://p4gefau1t.github.io/trojan-go/basic/config/
  4. https://ssrvps.org/archives/7686
  5. https://www.osuix.com/2021/01/12/qv2ray-trojan-go-%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE-for-win10-macos/

Description:


在一个网格平面上,有\(n\)个点(牛),其中第\(i\)个点在以\((x_i,y_i)\)为右上角的网格中。有\(m\)次操作,每次给出一个点\((x,y)\)(栅栏),表示从\((x,y)\)开始,向左和向下画线直到与之前画的线或坐标轴相交。这样会划分出以\((x,y)\)为右上角的新区域。你需要对每次操作求出,新区域中点的数量。

\(n,m\leq 3 \times 10^5, 1 \leq x_i,y_i \leq 10^9\)

Continue reading