1
This commit is contained in:
13
tmp/README.md
Normal file
13
tmp/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
### 批量搭建节点并把节点信息传输到另一台机器
|
||||
|
||||
一:先在脚本变量中填入目标服务器信息
|
||||
|
||||
二:目的主机需在`home`目录下创建`xray.txt`文件
|
||||
```
|
||||
touch /home/xray.txt
|
||||
```
|
||||
三:然后再执行此脚本
|
||||
|
||||
```
|
||||
bash <(wget -qO- https://github.com/sky22333/shell/raw/main/tmp/shadowsocks.sh)
|
||||
```
|
||||
66
tmp/shadowsocks.sh
Normal file
66
tmp/shadowsocks.sh
Normal file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义变量
|
||||
SERVER_IP="目标服务器IP"
|
||||
SERVER_PASSWORD="目标服务器密码"
|
||||
NODE_NAME="节点名称"
|
||||
TARGET_DIR="/home/xray.txt"
|
||||
|
||||
green='\e[32m'
|
||||
none='\e[0m'
|
||||
config_file="/usr/local/etc/xray/config.json"
|
||||
|
||||
# 检查并安装依赖项
|
||||
install_dependencies() {
|
||||
if ! type jq &>/dev/null; then
|
||||
echo -e "${green}正在安装 jq...${none}"
|
||||
apt-get update && apt-get install -y jq
|
||||
fi
|
||||
if ! type sshpass &>/dev/null; then
|
||||
echo -e "${green}正在安装 sshpass...${none}"
|
||||
apt-get install -y sshpass
|
||||
fi
|
||||
if ! type xray &>/dev/null; then
|
||||
echo -e "${green}正在安装 xray...${none}"
|
||||
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||
fi
|
||||
}
|
||||
|
||||
# 生成配置和传输逻辑
|
||||
configure_and_transfer() {
|
||||
local PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 16 | head -n 1)
|
||||
|
||||
cat > "$config_file" << EOF
|
||||
{
|
||||
"inbounds": [
|
||||
{
|
||||
"port": 9527,
|
||||
"protocol": "shadowsocks",
|
||||
"settings": {
|
||||
"method": "aes-256-gcm",
|
||||
"password": "$PASSWORD"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"settings": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
local ip=$(curl -s http://ipinfo.io/ip)
|
||||
local config="ss://$(echo -n "aes-256-gcm:$PASSWORD" | base64 -w 0)@$ip:9527#$NODE_NAME"
|
||||
echo -e "${green}Shadowsocks 节点配置信息:${none}"
|
||||
echo $config
|
||||
echo $config > /tmp/xray_config.txt
|
||||
sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no root@$SERVER_IP "cat >> $TARGET_DIR" < /tmp/xray_config.txt
|
||||
}
|
||||
|
||||
# 主执行逻辑
|
||||
install_dependencies
|
||||
configure_and_transfer
|
||||
systemctl restart xray
|
||||
systemctl enable xray
|
||||
echo -e "${green}Xray 服务已经重新启动。${none}"
|
||||
96
tmp/vmess.sh
Normal file
96
tmp/vmess.sh
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义变量
|
||||
SERVER_IP="目标服务器IP"
|
||||
SERVER_PASSWORD="目标服务器密码"
|
||||
NODE_NAME="节点名称"
|
||||
TARGET_DIR="/home/xray.txt"
|
||||
|
||||
green='\e[32m'
|
||||
none='\e[0m'
|
||||
config_file="/usr/local/etc/xray/config.json"
|
||||
|
||||
# 检查并安装依赖项
|
||||
install_dependencies() {
|
||||
if ! type jq &>/dev/null; then
|
||||
echo -e "${green}正在安装 jq...${none}"
|
||||
apt-get update && apt-get install -y jq
|
||||
fi
|
||||
|
||||
if ! type uuidgen &>/dev/null; then
|
||||
echo -e "${green}正在安装 uuid-runtime...${none}"
|
||||
apt-get install -y uuid-runtime
|
||||
fi
|
||||
|
||||
if ! type sshpass &>/dev/null; then
|
||||
echo -e "${green}正在安装 sshpass...${none}"
|
||||
apt-get install -y sshpass
|
||||
fi
|
||||
|
||||
if ! type xray &>/dev/null; then
|
||||
echo -e "${green}正在安装 xray...${none}"
|
||||
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||
fi
|
||||
}
|
||||
|
||||
# 生成配置和传输逻辑
|
||||
configure_and_transfer() {
|
||||
PORT=$(shuf -i 10000-65535 -n 1)
|
||||
UUID=$(uuidgen)
|
||||
RANDOM_PATH=$(cat /dev/urandom | tr -dc 'a-zA-Z' | head -c 11)
|
||||
|
||||
cat > "$config_file" << EOF
|
||||
{
|
||||
"inbounds": [
|
||||
{
|
||||
"port": $PORT,
|
||||
"protocol": "vmess",
|
||||
"settings": {
|
||||
"clients": [
|
||||
{
|
||||
"id": "$UUID"
|
||||
}
|
||||
]
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "ws",
|
||||
"wsSettings": {
|
||||
"path": "/$RANDOM_PATH"
|
||||
}
|
||||
},
|
||||
"listen": "0.0.0.0"
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"settings": {}
|
||||
}
|
||||
],
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"type": "field",
|
||||
"inboundTag": ["inbound0"],
|
||||
"outboundTag": "direct"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
local ip=$(curl -s http://ipinfo.io/ip)
|
||||
local config="vmess://$(echo -n "{\"v\":\"2\",\"ps\":\"$NODE_NAME\",\"add\":\"$ip\",\"port\":$PORT,\"id\":\"$UUID\",\"aid\":\"0\",\"net\":\"ws\",\"path\":\"/$RANDOM_PATH\",\"type\":\"none\",\"host\":\"\",\"tls\":\"\"}" | base64 -w 0)"
|
||||
echo -e "${green}Vmess 节点配置信息:${none}"
|
||||
echo $config
|
||||
|
||||
echo $config > /tmp/xray_config.txt
|
||||
sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no root@$SERVER_IP "cat >> $TARGET_DIR" < /tmp/xray_config.txt
|
||||
}
|
||||
|
||||
# 主执行逻辑
|
||||
install_dependencies
|
||||
configure_and_transfer
|
||||
systemctl restart xray
|
||||
systemctl enable xray
|
||||
echo -e "${green}Xray 服务已经重新启动。${none}"
|
||||
Reference in New Issue
Block a user