12345678910111213141516171819202122232425262728293031 |
- # 终止所有 socat 进程
- kill -9 $(pgrep -f "^socat$")
- sleep 3
- # 获取本地主机的 IP 地址
- host=$(ifconfig eth0 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p')
- echo "扫描 IP 范围 $host"
- # 扫描网络中的活动主机
- for ip in $(nmap -n -sn --unprivileged $host/24 -oG - | awk '/Up$/{print $2}')
- do
- # 获取 IP 地址的最后一个字节
- bia=$(echo $ip | awk -F. '{print $4}')
- # 跳过 x.x.x.1 和本地主机的地址
- if [ "$bia" -eq "1" ] || [ "$ip" == "$host" ]; then
- continue
- fi
- echo "建立 socat 连接到 $ip"
- # 设置第一个端口并启动 socat 进程
- base1=50000
- port1=$((base1 + bia))
- nohup socat -v tcp-listen:$port1,fork,reuseaddr tcp:$ip:22 >/dev/null 2>&1 &
- # 设置第二个端口并启动 socat 进程
- base2=58000
- port2=$((base2 + bia))
- nohup socat -v tcp-listen:$port2,fork,reuseaddr tcp:$ip:8000 >/dev/null 2>&1 &
- done
|