|
|
本帖最后由 yxmyxmyyy 于 2024-11-12 02:07 编辑
11.11更新 优化了一下规则,
方法二经过测试已经足够稳定了,方法一没必要了
https://www.right.com.cn/forum/thread-8382618-1-1.html
这个帖子里面的自启动脚本由于是在op环境里面运行的,所以无法执行iptables命令,现在通过一些奇技淫巧可以实现NAT回流,
目前有两种方法,都是靠telnet连接光猫本机来实现,ip和端口换成对应的就行
方法一:通过另一台机器如ubuntu服务器远程执行telnet命令,并设置定时每天执行或者在路由器重启后执行
安装 expect
首先,确保您的系统上安装了 expect,它是一个用于自动化交互式应用程序的工具。
sudo apt-get update
sudo apt-get install expect -y
编写 expect 脚本
创建一个名为 telnet_script.expect 的文件,并将以下内容复制进去:
- #!/usr/bin/expect -f
- set timeout 20
- # 启动 Telnet 会话
- spawn telnet 192.168.2.1 23
- # 等待登录提示
- expect "Login:"
- send "root\r"
- # 等待密码提示
- expect "Password:"
- send "Zte521\r"
- # 等待命令提示符
- expect "#"
- # 执行 iptables 命令
- send "iptables -t nat -D PREROUTING -i br0 -p tcp --dport 23333 -j DNAT --to-destination 192.168.2.30\r"
- expect "#"
- send "iptables -t nat -D PREROUTING -i br0 -p udp --dport 23333 -j DNAT --to-destination 192.168.2.30\r"
- expect "#"
- send "iptables -t nat -D POSTROUTING -d 192.168.2.30 -p tcp --dport 23333 -j MASQUERADE\r"
- expect "#"
- send "iptables -t nat -D POSTROUTING -d 192.168.2.30 -p udp --dport 23333 -j MASQUERADE\r"
- expect "#"
- send "iptables -t nat -A PREROUTING -i br0 -p tcp --dport 23333 -j DNAT --to-destination 192.168.2.30\r"
- expect "#"
- send "iptables -t nat -A PREROUTING -i br0 -p udp --dport 23333 -j DNAT --to-destination 192.168.2.30\r"
- expect "#"
- send "iptables -t nat -A POSTROUTING -d 192.168.2.30 -p tcp --dport 23333 -j MASQUERADE\r"
- expect "#"
- send "iptables -t nat -A POSTROUTING -d 192.168.2.30 -p udp --dport 23333 -j MASQUERADE\r"
- expect "#"
- # 退出 Telnet 会话
- send "exit\r"
- expect eof
复制代码
赋予脚本执行权限
chmod +x telnet_script.expect
运行脚本
./telnet_script.expect
方法二:通过光猫自带的openwrt执行telnet命令,但由于op无法安装expect插件,所以只能用nc命令执行
首先根据这个教程进入光猫op里面
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8302047&highlight=saf
然后进入root文件夹创建脚本
cd /root
vi 1.sh
- #!/bin/bash
- HOST="192.168.2.1"
- PORT="23"
- USER="root"
- PASS="Zte521"
- (
- sleep 1
- echo $USER
- sleep 1
- echo $PASS
- sleep 3
- echo "iptables -t nat -A PREROUTING -i br0 -p tcp --dport 23333 -j DNAT --to-destination 192.168.2.30"
- sleep 1
- echo "iptables -t nat -A PREROUTING -i br0 -p udp --dport 23333 -j DNAT --to-destination 192.168.2.30"
- sleep 1
- echo "iptables -t nat -A POSTROUTING -p tcp -s 192.168.2.0/24 -o br0 --dport 23333 -j MASQUERADE"
- sleep 1
- echo "iptables -t nat -A POSTROUTING -p udp -s 192.168.2.0/24 -o br0 --dport 23333 -j MASQUERADE"
- sleep 1
- echo "exit"
- ) | nc $HOST $PORT
复制代码 赋予脚本权限
chmod 755 1.sh
尝试执行看是否成功,直接运行./1.sh
最后添加到开机脚本里面
vi /etc/rc.local
在exit 0上面插入
sleep 10
/root/1.sh
添加延迟是防止脚本处理过快,telnet和网络服务还未启动,然后保存退出,重启测试即可
|
|