1 #!/bin/bash
2 #
3 # ./changeport.sh 4443
4 #
5 PORT=$1
6 if [ "$PORT" == "" ]; then
7 echo "port empty"
8 exit 0
9 fi
10 if [ "$(netstat -anp | grep ":$PORT")" != "" ]; then
11 echo "端口已经占用,尝试换一个端口"
12 exit 0
13 fi
14
15
16 # 备份文件
17 cp /etc/caddy/Caddyfile Caddyfile.bak
18 iptables-save > iptables-save.bak
19
20 #
21 donmain_port=$(head -1 /etc/caddy/Caddyfile | awk '{print $1}')
22 domain=$(echo $donmain_port | cut -d ':' -f1)
23 newdonmain_port="${domain}:${PORT}"
24
25 sed -i "s/$donmain_port/$newdonmain_port/" /etc/caddy/Caddyfile
26
27 echo "添加 iptables"
28 iptables -A INPUT -p tcp -m tcp --dport $PORT -j ACCEPT
29 echo "重启 caddy"
30 systemctl restart caddy
31
32 # 等待 caddy重启
33 sleep 2
34
35 if [ "$(netstat -anp |grep caddy |grep ":$PORT")" == "" ]; then
36 ret="ERROR"
37 else
38 ret="OK"
39 fi
40 echo "检查 caddy, $ret"
41 if [ "$ret" == "ERROR" ]; then
42 echo "更改端口失败,尝试恢复 Caddyfile.bak, iptables-save.bak"
43 else
44 echo "更改端口成功, PORT:$PORT,尝试修改代理客户端端口号"
45 fi