commit
74e4a2a3a9
|
|
@ -0,0 +1,17 @@
|
||||||
|
[Unit] # 主要是服务说明
|
||||||
|
Description=Udp2Raw - %i # 简单描述服务
|
||||||
|
After=network.target # 描述服务类别,表示本服务需要在network服务启动后在启动
|
||||||
|
Before= # 表示需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。
|
||||||
|
|
||||||
|
[Service] # 核心区域
|
||||||
|
Type=forking # 表示后台运行模式。
|
||||||
|
User=nobody # 设置服务运行的用户
|
||||||
|
Group=nobody # 设置服务运行的用户组
|
||||||
|
KillMode=control-group # 定义systemd如何停止服务
|
||||||
|
PIDFile=/usr/local/udptools/pid/udp2raw-%i.pid # 存放PID的绝对路径
|
||||||
|
Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启
|
||||||
|
ExecStart=/usr/local/udptools/udp2raw-%i.sh # 服务启动命令,命令需要绝对路径
|
||||||
|
PrivateTmp=true # 表示给服务分配独立的临时空间
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target # 多用户
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
[Unit] # 主要是服务说明
|
||||||
|
Description=UdpSpeeder - %i # 简单描述服务
|
||||||
|
After=network.target # 描述服务类别,表示本服务需要在network服务启动后在启动
|
||||||
|
Before= # 表示需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。
|
||||||
|
|
||||||
|
[Service] # 核心区域
|
||||||
|
Type=forking # 表示后台运行模式。
|
||||||
|
User=nobody # 设置服务运行的用户
|
||||||
|
Group=nobody # 设置服务运行的用户组
|
||||||
|
KillMode=control-group # 定义systemd如何停止服务
|
||||||
|
PIDFile=/usr/local/udptools/pid/udpspeeder-%i.pid # 存放PID的绝对路径
|
||||||
|
Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启
|
||||||
|
ExecStart=/usr/local/udptools/udpspeeder-%i.sh # 服务启动命令,命令需要绝对路径
|
||||||
|
PrivateTmp=true # 表示给服务分配独立的临时空间
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target # 多用户
|
||||||
|
|
@ -0,0 +1,110 @@
|
||||||
|
#!/bin/bash
|
||||||
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||||
|
export PATH
|
||||||
|
#判断系统
|
||||||
|
if [[ -e /etc/debian_version ]]; then
|
||||||
|
OS=debian
|
||||||
|
GROUPNAME=nogroup
|
||||||
|
RCLOCAL='/etc/rc.local'
|
||||||
|
IPTABLES=`dpkg --get-selections | grep iptables`
|
||||||
|
elif [[ -e /etc/centos-release || -e /etc/redhat-release ]]; then
|
||||||
|
OS=centos
|
||||||
|
GROUPNAME=nobody
|
||||||
|
RCLOCAL='/etc/rc.d/rc.local'
|
||||||
|
IPTABLES=`rpm -qa |grep iptables`
|
||||||
|
else
|
||||||
|
echo "只支持Debian\Ubuntu\CentOS系统"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
#检查依赖IPTABLES
|
||||||
|
if [ "$IPTABLES" == '' ]; then
|
||||||
|
if [[ "$OS" = 'debian' ]]; then
|
||||||
|
apt-get update
|
||||||
|
apt-get install iptables -y
|
||||||
|
else
|
||||||
|
yum install iptables -y
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#判断服务模式
|
||||||
|
if pgrep systemd-journal; then
|
||||||
|
SYSTEMCTL=1
|
||||||
|
else
|
||||||
|
SYSTEMCTL=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Which mode to run this?"
|
||||||
|
echo "你想运行在什么模式?"
|
||||||
|
echo " 1) Client(Default) - 客户端(默认)"
|
||||||
|
echo " 2) Server - 服务端"
|
||||||
|
read -p "Run Mode(运行模式) [1-2]: " -e -i 1 RUNMODE
|
||||||
|
case $RUNMODE in
|
||||||
|
1)
|
||||||
|
read -p "Remote Udp2Raw IP(Udp2Raw远程IP): " RIP
|
||||||
|
echo""
|
||||||
|
while [[ ! "$RPORT" =~ [1-65535] ]];do
|
||||||
|
read -p "Remote Udp2Raw Port(Udp2Raw远程端口): " RPORT
|
||||||
|
echo""
|
||||||
|
done
|
||||||
|
while [[ ! "$MPORT" =~ [1-65535] ]];do
|
||||||
|
read -p "Middle Port(Udp2Raw与UDPSpeeder中间端口): " MPORT
|
||||||
|
CHECKMPORT=`netstat -ntl | grep $MPORT`
|
||||||
|
if [[ "$CHECKMPORT" != "" ]]; then
|
||||||
|
MPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
echo""
|
||||||
|
done
|
||||||
|
while [[ ! "$LPORT" =~ [1-65535] ]];do
|
||||||
|
read -p "Listen Port(监听给本地其他业务用端口): " LPORT
|
||||||
|
CHECKLPORT=`netstat -ntl | grep $LPORT`
|
||||||
|
if [[ "$CHECKLPORT" != "" ]]; then
|
||||||
|
LPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
if [ "$LPORT" == "$MPORT" ]; then
|
||||||
|
LPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
echo""
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
while [[ ! "$RPORT" =~ [1-65535] ]];do
|
||||||
|
read -p "Other Server Port(本地其他业务端口): " RPORT
|
||||||
|
echo""
|
||||||
|
done
|
||||||
|
while [[ ! "$MPORT" =~ [1-65535] ]];do
|
||||||
|
read -p "Middle Port(Udp2Raw与UDPSpeeder中间端口): " MPORT
|
||||||
|
CHECKMPORT=`netstat -ntl | grep $MPORT`
|
||||||
|
if [[ "$CHECKMPORT" != "" ]]; then
|
||||||
|
MPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
if [ "$MPORT" == "$RPORT" ]; then
|
||||||
|
MPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
echo""
|
||||||
|
done
|
||||||
|
while [[ ! "$LPORT" =~ [1-65535] ]];do
|
||||||
|
read -p "Udp2Raw Listen Port(监听给远程UDP2RAW用): " LPORT
|
||||||
|
CHECKLPORT=`netstat -ntl | grep $LPORT`
|
||||||
|
if [[ "$CHECKLPORT" != "" ]]; then
|
||||||
|
LPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
if [ "$LPORT" == "$MPORT" ]; then
|
||||||
|
LPORT=0
|
||||||
|
echo "端口已被占用";
|
||||||
|
fi
|
||||||
|
echo""
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo $IP
|
||||||
|
echo $RPORT
|
||||||
|
echo $MPORT
|
||||||
|
echo $LPORT
|
||||||
|
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
#!/bin/bash
|
||||||
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||||
|
export PATH
|
||||||
|
UDP2RAW_URL=https://soft.huayizhiyun.com/network/udptools/udp2raw/udp2raw_20190716.tar.gz
|
||||||
|
UDPSPEEDER_URL=https://soft.huayizhiyun.com/network/udptools/udpspeeder/speederv2_20190121.tar.gz
|
||||||
|
|
||||||
|
#判断系统和决定BIN名
|
||||||
|
if [[ `getconf WORD_BIT` = '32' && `getconf LONG_BIT` = '64' ]] ; then
|
||||||
|
Is_64bit='y'
|
||||||
|
UDP2RAW_BIN='udp2raw_amd64'
|
||||||
|
UDPSPEEDER_BIN='speederv2_amd64'
|
||||||
|
else
|
||||||
|
Is_64bit='n'
|
||||||
|
UDP2RAW_BIN='udp2raw_x86'
|
||||||
|
UDPSPEEDER_BIN='speederv2_x86'
|
||||||
|
fi
|
||||||
|
if uname -m | grep -Eqi "arm|aarch64"; then
|
||||||
|
Is_ARM='y'
|
||||||
|
UDP2RAW_BIN='udp2raw_arm'
|
||||||
|
UDPSPEEDER_BIN='speederv2_arm'
|
||||||
|
fi
|
||||||
|
|
||||||
|
#安装程序
|
||||||
|
Get_udp2raw()
|
||||||
|
{
|
||||||
|
#下载并提取相关文件
|
||||||
|
if [ ! -d "/usr/local/udptools" ]; then
|
||||||
|
mkdir /usr/local/udptools
|
||||||
|
fi
|
||||||
|
if [ ! -d "/usr/local/udptools/bin" ]; then
|
||||||
|
mkdir /usr/local/udptools/bin
|
||||||
|
fi
|
||||||
|
if [ ! -d "/usr/local/udptools/src" ]; then
|
||||||
|
mkdir /usr/local/udptools/src
|
||||||
|
fi
|
||||||
|
cd /usr/local/udptools/src
|
||||||
|
|
||||||
|
if [ ! -f "/usr/local/udptools/src/$UDP2RAW_BIN" ]; then
|
||||||
|
if [ ! -f "/usr/local/udptools/src/udp2raw.tar.gz" ]; then
|
||||||
|
wget -O udp2raw.tar.gz https://soft.huayizhiyun.com/network/udptools/udp2raw/udp2raw_20190716.tar.gz
|
||||||
|
fi
|
||||||
|
tar -zxvf udp2raw.tar.gz
|
||||||
|
fi
|
||||||
|
if [ ! -f "/usr/local/udptools/src/$UDP2RAW_BIN" ]; then
|
||||||
|
echo "下载udp2raw失败;"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
cp /usr/local/udptools/src/$UDP2RAW_BIN /usr/local/udptools/bin/udp2raw
|
||||||
|
}
|
||||||
|
|
||||||
|
Get_udpspeeder()
|
||||||
|
{
|
||||||
|
#下载并提取相关文件
|
||||||
|
if [ ! -d "/usr/local/udptools" ]; then
|
||||||
|
mkdir /usr/local/udptools
|
||||||
|
fi
|
||||||
|
if [ ! -d "/usr/local/udptools/bin" ]; then
|
||||||
|
mkdir /usr/local/udptools/bin
|
||||||
|
fi
|
||||||
|
if [ ! -d "/usr/local/udptools/src" ]; then
|
||||||
|
mkdir /usr/local/udptools/src
|
||||||
|
fi
|
||||||
|
cd /usr/local/udptools/src
|
||||||
|
if [ ! -f "/usr/local/udptools/src/$UDPSPEEDER_BIN" ]; then
|
||||||
|
if [ ! -f "/usr/local/udptools/src/udpspeeder.tar.gz" ]; then
|
||||||
|
wget -O udpspeeder.tar.gz https://soft.huayizhiyun.com/network/udptools/udpspeeder/speederv2_20190121.tar.gz
|
||||||
|
fi
|
||||||
|
tar -zxvf udpspeeder.tar.gz
|
||||||
|
fi
|
||||||
|
if [ ! -f "/usr/local/udptools/src/$UDPSPEEDER_BIN" ]; then
|
||||||
|
echo "下载udpspeeder失败;"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
cp /usr/local/udptools/src/$UDPSPEEDER_BIN /usr/local/udptools/bin/udpspeeder
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -f "/usr/local/udptools/bin/udp2raw" ]; then
|
||||||
|
Get_udp2raw
|
||||||
|
fi
|
||||||
|
if [ ! -f "/usr/local/udptools/bin/udpspeeder" ]; then
|
||||||
|
Get_udpspeeder
|
||||||
|
fi
|
||||||
|
if [ ! -d "/usr/local/udptools/pid" ]; then
|
||||||
|
mkdir /usr/local/udptools/pid
|
||||||
|
fi
|
||||||
|
if [ ! -d "/usr/local/udptools/log" ]; then
|
||||||
|
mkdir /usr/local/udptools/log
|
||||||
|
fi
|
||||||
Loading…
Reference in New Issue