看了看网上现在很多自签证书的教程,都是东抄西抄,可用性极差。
同样以社区中奖的vps环境为例(debian5)写一个简单可用的教程,理论上linux都能用。
1.生成key,并记住密钥 (输入两遍相同的密钥)
openssl genrsa -des3 -out mydomain.key 2048
2.生成csr (输入key的密钥,然后一直回车即可)
openssl req -new -key mydomain.key -out mydomain.csr
3.删除key的密钥 (输入key的密钥)【mydomain.key.org为原始key文件】
cp mydomain.key mydomain.key.org ; openssl rsa -in mydomain.key.org -out mydomain.key
4.新建mydomain.txt (将文件中 mydomain.com 替换成 你的域名)
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints = CA:TRUE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign
subjectAltName = DNS:mydomain.com, DNS:*.mydomain.com
issuerAltName = issuer:copy
5.生成cert证书文件
openssl x509 -req -in mydomain.csr -signkey mydomain.key -out mydomain.crt -days 3650 -sha256 -extfile mydomain.txt
执行完上面的几个步骤,会在当前目录下生成 mydomain.key mydomain.crt 两个文件,至此教程基本上就结束了(当然还可以生成其它格式的证书文件)。
附言:
如果hysteria2想要开启tls,请先参考原始教程
论坛机器hysteria2从无到有,一建到底。100%可用(理论上debian均适用)
以Just4Fun为例
机器信息 CPU(1核) 内存(216M) 硬盘(5GB)
系统信息 debian5 lxc虚拟化
备注:涉及到的端口号要看自己的实际端口号
从面板 https://www.nodehatch.com/instance/overview 打开实例页面
记住ssh登录命令 ssh -p 21022 root@194.87.2.76
公网IP 194.87.2.76 可用端口号21001-21020
ssh -p 21022 root@194.87.2.76
第一次登录 输入yes 然后再输入密码(密码尽可能先重置一次)
初始化环境
apt update ; apt -y install wget curl cron
设定时区
timedatectl list-timezones | grep "Asia/Shanghai" ; timedatectl set-timezone Asia/Shanghai ; source /etc/profile
下载hysteria2二进制文件
wget https://github.com/apernet/hysteria/releases/download/app/v2.6.0/hysteria-linux-amd64 -O hysteria2 ; chmod +x ./hysteria2
生成服务器证书
openssl genrsa -out hysteria2.key 2048
openssl req -new -x509 -key hysteria2.key -out hysteria2.crt -days 36500
一直回车即可
server.yaml #服务端配置文件
listen: :21001
speedTest: true
tls:
cert: hysteria2.crt
key: hysteria2.key
sniGuard: disable
auth:
type: password
password: abcd1234abcd56780000
client.yaml #客户端配置文件
server: "127.0.0.1:21001"
auth: "abcd1234abcd56780000"
tls:
insecure: true
http:
listen: :21002
socks5:
listen: :21002
server.sh #监测脚本
#!/bin/bash
cd /root
ps aux | grep -F "server.yaml" | grep -v "grep" >/dev/null 2>&1
if [ $? -ne 0 ]; then
./hysteria2 server -c server.yaml >/dev/null 2>&1 &
fi
ps aux | grep -F "client.yaml" | grep -v "grep" >/dev/null 2>&1
if [ $? -ne 0 ]; then
./hysteria2 client -c client.yaml >/dev/null 2>&1 &
fi
start.sh #启动脚本
#!/bin/bash
while true
do
sh /root/server.sh
sleep 10
done
crontab -e #计划任务 前面5个星号
* * * * * sh /root/server.sh
修改启动文件
ln -s /usr/lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
vi /etc/rc.local ; chmod +x /etc/rc.local
#!/bin/bash
sh /root/start.sh &
exit 0
重启服务器
reboot
ssh -p 21022 root@194.87.2.76
登录后,输入
./hysteria2 speedtest -c client.yaml
有如下字样就是成功了
INFO speed test mode
connected to server {“udpEnabled”: true, “tx”: 0}
performing download test
download complete {“bytes”: 104857600, “speed”: “3.10 Gbps”}
download test complete
ps aux 可以看进程
netstat -antu 可以看端口信息
因为是最精简基础教程所以写的比较通俗易懂。
如果以上信息有什么错误,欢迎指正,咱们共同交流共同进步。
附上 完整文档,可以增强调整其它功能。 https://v2.hysteria.network/zh/
,再参考补充教程
insecure=0实现方法
server.yaml #服务端配置文件
其中 myca.crt myca.key 是你域名的SANs证书文件
listen: :21001
speedTest: true
tls:
cert: myca.crt
key: myca.key
sniGuard: strict
auth:
type: password
password: abcd1234abcd56780000
client.yaml #客户端配置文件
sni填入你的域名,如果是自签名还需要引入ca项
server: "127.0.0.1:21001"
auth: "abcd1234abcd56780000"
tls:
sni: domain
ca: myca.crt
insecure: false
http:
listen: :21002
socks5:
listen: :21002
hysteria2需要在客户端引入cert信息,trojan-go可直接使用,cloudflare则需要在面板关闭自签验证。
暂无评论内容