富强、民主、文明、和谐

自由、平等、公正、法治

爱国、敬业、诚信、友善

更新

19.4.8更新权限配置

Server

Trojan

这里还是说在Debian上的搭建方式

首先建议你升级到Debian 10(buster):

apt update
apt dist-upgrade
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i 's/stretch/buster/g' /etc/apt/sources.list #将stretch更换为你的codename
apt update
apt dist-upgrade
apt --purge autoremove

然后安装Trojan:

apt install trojan

Trojan的配置位于/etc/trojan.json

编辑它将"password":内的值改为你自己的密码
"cert":"key":改为你网站的ssl证书和私钥
通过acme申请证书:

# 安装acme
curl  https://get.acme.sh | sh
echo 'alias acme.sh=~/.acme.sh/acme.sh' >> ~/.bashrc
source ~/.bashrc
# 声明Cloudflare帐号与API KEY并申请证书(在这个[页面](https://www.cloudflare.com/a/profile)点击Global API Key--->View API Key即可看到):
export CF_Key="你的API KEY"
export CF_Email="你的邮箱"
acme.sh --issue --dns dns_cf -d google.com -d *.google.com #这里的google.com换成你的域名
# 安装证书:
mkdir -p /etc/letsencrypt/live/google.com/
acme.sh  --installcert  -d  google.com   \ # 记得更改域名
        --key-file   /etc/letsencrypt/live/google.com/privkey.pem \ # 记得更改域名
        --fullchain-file /etc/letsencrypt/live/google.com/fullchain.pem \ # 记得更改域名
        --reloadcmd  "chown -R nginx:nginx /etc/letsencrypt/ && systemctl restart trojan" # 这里的nginx注意修改为nginx使用的用户名

(完整内容可以阅读这篇文章
其他可保持默认

如果你使用Nginx,则建议将trojan服务(/lib/systemd/system/trojan.service)的运行用户修改为nginx或www-data(其它web server用对应的用户也可以):

...
User=nginx # 或www-data 
...

否则将证书的权限开放出来(不建议):

chmod 755 -R /etc/letsencrypt/ # 记得修改acme.sh的--reloadcmd参数

启用服务:

systemctl enable trojan
systemctl start trojan


Nginx

Trojan对于非Trojan客户端的请求都会转向服务端本地80端口(仍是443端口),这里选用nginx作为web服务器

apt install nginx
nano /etc/nginx/sites-enabled/default

所以nginx的配置不能写有监听443,监听在本地的80端口即可

至于其它配置照常写就行了(关于ssl证书等配置将无效)

如果你还希望运行v2ray则加上(因为trojan还没有像样的手机客户端,所以只能先跑个v2ray):

...
 location /download {
        proxy_redirect off;
        proxy_pass http://localhost:1234;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        }
...

启动Nginx:

systemctl enable nginx
systemctl start nginx


V2ray

V2ray的TLS+websocket+Nginx应该是最稳的方案之一了
但是延迟却比较感人,且因为GO未支持tls1.3还只能用tls1.2

wget https://install.direct/go.sh -O v2ray.sh
bash v2ray.sh

更改配置:

rm /etc/v2ray/config.json
nano /etc/v2ray/config.json

写入(请注意并删除中文注释):

{
  "outbound": {
    "streamSettings": null,
    "tag": null,
    "protocol": "freedom",
    "mux": null,
    "settings": null
  },
  "log": {
    "access": "/var/log/v2ray/access.log",
    "loglevel": "info",
    "error": "/var/log/v2ray/error.log"
  },
  "outboundDetour": [{
      "tag": "direct",
      "protocol": "freedom",
      "settings": null
    },
    {
      "tag": "blocked",
      "protocol": "blackhole",
      "settings": null
    }
  ],
  "inbound": {
    "streamSettings": {
      "network": "ws",
      "kcpSettings": null,
      "wsSettings": {
        "path": "/download" #这里必须和Nginx配置中"/download"的路径一样
      },
      "tcpSettings": null,
      "tlsSettings": {},
      "security": ""
    },
    "settings": {
      "ip": null,
      "udp": true,
      "clients": [{
        "alterId": 100,
        "security": "none",
        "id": "xxxx-xxxx-xxxx-xxxx" #请访问 https://www.uuidgenerator.net/ 获取UUID并改入
      }],
      "auth": null
    },
    "protocol": "vmess",
    "port": 1234, #这里的端口也必须和Nginx配置中"/download"的端口一样
    "listen": null
  },
  "inboundDetour": null,
  "routing": {
    "settings": {
      "rules": [{
        "ip": [
          "0.0.0.0/8",
          "10.0.0.0/8",
          "100.64.0.0/10",
          "127.0.0.0/8",
          "169.254.0.0/16",
          "172.16.0.0/12",
          "192.0.0.0/24",
          "192.0.2.0/24",
          "192.168.0.0/16",
          "198.18.0.0/15",
          "198.51.100.0/24",
          "203.0.113.0/24",
          "::1/128",
          "fc00::/7",
          "fe80::/10"
        ],
        "domain": null,
        "type": "field",
        "port": null,
        "outboundTag": "blocked"
      }],
      "domainStrategy": null
    },
    "strategy": "rules"
  },
  "dns": null
}
# 你可真鸡儿长

启动V2ray服务:

systemctl enable v2ray
systemctl start v2ray

Client

Trojan

Cient配置文件示例(注意并删除中文注释):

{
    "run_type": "client",
    "local_addr": "127.0.0.1",
    "local_port": 这里为你本地的socks5代理端口,例如1080,
    "remote_addr": "这里改为你网站的地址,例如google.com",
    "remote_port": 这里改为你的端口,例如443,
    "password": ["这里改为你的密码"],
    "append_payload": true,
    "log_level": 1,
    "ssl": {
        "verify": true,
        "verify_hostname": true,
        "cert": "",
        "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
        "sni": "这里改为你网站的地址,例如google.com",
        "alpn": [
            "h2",
            "http/1.1"
        ],
        "reuse_session": true,
        "curves": "",
        "sigalgs": ""
    },
    "tcp": {
        "keep_alive": true,
        "no_delay": true,
        "fast_open": true,
        "fast_open_qlen": 5
    }
}

当然,你可以使用这个生成配置:https://trojan-gfw.github.io/trojan-config-gen/

记得启用服务:
Gentoo:

rc-update add trojan default
rc-service trojan start

systemd:

systemctl enable trojan
systemctl start trojan

Known issues

如果你的Server有ipv6 IP
修改/etc/gai.conf

加入或去掉注释以下内容然后重启网络(简单重启也行):

precedence ::ffff:0:0/96  100

Community

Telegram Group
Telegram Channel


V2ray

这货配置文件太鸡儿长了
对于json配置我还是直接丢链接吧:https://github.com/KiriKira/vTemplate

这里说下V2ray手动配置(Android客户端为例,不建议直接导入使用json配置):

###服务器###
主机:域名(无路径)
端口: 443
用户ID:填server的UUID
Alterid: 100
加密方式:none
用户等级: 0
网络: WebSocket 或 ws
加密方式: tls
服务器证书域名: 不填
允许不安全连接: 关闭
WebSocket或ws路径: /download
HTTP头: 不填

添加新评论