Create hysteria2.sh
安装Hysteria2 代理
This commit is contained in:
parent
b4278d19c8
commit
6055e77079
102
hysteria2.sh
Normal file
102
hysteria2.sh
Normal file
@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Hysteria安装和配置脚本(已添加自定义端口选项)
|
||||
# 作者:Grok3
|
||||
# 描述:自动安装Hysteria服务、生成证书、配置并重启服务,支持自定义端口。
|
||||
# 注意:请以root权限运行此脚本。
|
||||
|
||||
# 步骤1: 提示用户输入自定义端口(默认20000)
|
||||
read -p "请输入Hysteria监听端口(默认: 20000, 范围: 1-65535): " user_port
|
||||
|
||||
# 如果未输入,使用默认端口
|
||||
if [ -z "$user_port" ]; then
|
||||
user_port=20000
|
||||
fi
|
||||
|
||||
# 简单验证端口是否为有效的数字
|
||||
if ! [[ "$user_port" =~ ^[0-9]+$ ]] || [ "$user_port" -lt 1 ] || [ "$user_port" -gt 65535 ]; then
|
||||
echo "错误: 端口必须是1-65535之间的有效数字。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "您设置的端口是: $user_port"
|
||||
|
||||
# 步骤2: 提示用户输入密码
|
||||
read -p "请输入Hysteria配置密码(用于auth部分): " user_password
|
||||
|
||||
if [ -z "$user_password" ]; then
|
||||
echo "错误: 密码不能为空,请重新运行脚本。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "您输入的密码是: $user_password(实际配置文件中不会显示此提示)"
|
||||
|
||||
# 步骤3: 安装Hysteria服务
|
||||
echo "开始安装Hysteria服务..."
|
||||
bash <(curl -fsSL https://get.hy2.sh/)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: Hysteria安装失败,请检查网络或手动安装。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Hysteria服务安装完成。"
|
||||
|
||||
# 步骤4: 生成自签证书
|
||||
echo "开始生成自签证书..."
|
||||
openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj "/CN=www.bing.com" -days 36500
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: 生成证书失败,请确保openssl已安装。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 修改证书文件权限(确保hysteria用户拥有权限)
|
||||
sudo chown hysteria /etc/hysteria/server.key
|
||||
sudo chown hysteria /etc/hysteria/server.crt
|
||||
|
||||
echo "自签证书生成并权限设置完成。"
|
||||
|
||||
# 步骤5: 生成配置文件并覆盖/etc/hysteria/config.yaml
|
||||
echo "开始生成配置文件..."
|
||||
cat > /etc/hysteria/config.yaml << EOF
|
||||
listen: :$user_port
|
||||
tls:
|
||||
cert: /etc/hysteria/server.crt
|
||||
key: /etc/hysteria/server.key
|
||||
auth:
|
||||
type: password
|
||||
password: $user_password
|
||||
masquerade:
|
||||
type: proxy
|
||||
proxy:
|
||||
url: https://www.bing.com/
|
||||
rewriteHost: true
|
||||
EOF
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: 生成配置文件失败。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "配置文件已生成并覆盖到/etc/hysteria/config.yaml,使用端口: $user_port。"
|
||||
|
||||
# 步骤6: 重启Hysteria服务
|
||||
echo "重启Hysteria服务..."
|
||||
systemctl restart hysteria-server.service
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: 服务重启失败,请检查服务状态。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Hysteria服务已重启。"
|
||||
|
||||
# 步骤7: 检查服务状态和端口
|
||||
echo "检查Hysteria服务状态..."
|
||||
systemctl status hysteria-server.service --no-pager
|
||||
|
||||
echo "检查端口(UDP $user_port)..."
|
||||
ss -u -l | grep $user_port
|
||||
|
||||
echo "安装和配置完成!请验证服务是否正常运行。如果端口未监听,请检查防火墙规则或日志。"
|
Loading…
x
Reference in New Issue
Block a user