上次通过NC进行了代理测速,这次通过iptables直接内核层进行转发:
目标服务器: 4.ipw.cn
代理机器: lflish.cloud(云机器)
下边代码尚未进行测试,后续会更新(因为这次使用了80端口测试,排查是因为运营商拦截了请求,目前正在备案中)
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -F
#本机IP地址
LOCAL=10.0.24.7
#基于端口进行转发
function add_dnat_dip()
{
PORT=$1
DIP=$2
iptables -t nat -I PREROUTING --dst ${LOCAL} -p tcp --dport ${PORT} -j DNAT --to-destination ${DIP}
iptables -t nat -I POSTROUTING -p tcp --dport ${PORT} -j SNAT --to-source ${LOCAL}
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport ${PORT} -j ACCEPT
}
#基于Ip+port进行转发
function add_dnat_dst()
{
PORT=$1
DIP=$2
DPORT=$3
iptables -t nat -I PREROUTING --dst ${LOCAL} -p tcp --dport ${PORT} -j DNAT --to-destination ${DIP}:${DPORT}
iptables -t nat -I POSTROUTING -p tcp --dport ${DPORT} -j SNAT --to-source ${LOCAL}
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport ${PORT} -j ACCEPT
}
#add_port_2_dip 80 114.132.191.12
add_dnat_dst 7000 114.132.191.12 80
chatGPT:
当涉及到端口转发时,iptables 和 nc(netcat)是两种不同的实现方式,各自有其特点和用途。
iptables 端口转发:
- iptables 是一个在 Linux 上用于配置防火墙规则的工具,它可以进行网络地址转换(NAT)以及端口转发等功能。
- 通过 iptables 进行端口转发是在系统级别进行的,可以影响整个系统的网络流量控制。
- iptables 可以实现四层(传输层)的端口转发,可以基于源地址、目标地址、源端口、目标端口等信息进行转发规则的配置。
nc 端口转发:
- nc(netcat)是一个网络工具,用于在网络上读写数据,包括建立连接、传输数据等功能。
- 通过 nc 进行端口转发是在应用层进行的,通常用于临时性的、针对特定应用的端口转发需求。
- nc 端口转发是在命令行中执行的,只会影响 nc 所启动的端口转发过程,不会影响系统的其他网络流量。
总结:
- iptables 适用于系统级别的网络流量控制,而 nc 更适用于临时性的、应用层的端口转发需求。
- iptables 实现的端口转发作用于整个系统的网络流量,而 nc 只会影响 nc 命令所启动的端口转发过程。
- iptables 可以实现四层的端口转发,而 nc 更多地是应用层的端口转发工具。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 68813175@qq.com