iptables怎么放通端口不指定tcp或udp
时间: 2023-09-17 17:08:24 浏览: 48
你可以使用以下命令放通端口:
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
iptables -A INPUT -p udp --dport 端口号 -j ACCEPT
其中,“端口号”指的是需要放通的端口号。如果不指定tcp或udp,iptables会默认使用tcp协议。
相关问题
udp端口转发 Linux,Linux下利用iptables快速实现UDP/TCP端口转发
在Linux下,可以使用iptables命令来实现UDP/TCP端口转发。下面是一个简单的UDP端口转发的示例:
假设有两台服务器A和B,A服务器的IP地址为192.168.1.100,B服务器的IP地址为192.168.1.200。现在需要将A服务器上的UDP端口8888转发到B服务器上的UDP端口9999。
首先,在A服务器上执行以下命令:
```bash
iptables -t nat -A PREROUTING -p udp --dport 8888 -j DNAT --to-destination 192.168.1.200:9999
iptables -t nat -A POSTROUTING -p udp -d 192.168.1.200 --dport 9999 -j SNAT --to-source 192.168.1.100
```
其中,第一条命令将所有发送到A服务器上的UDP端口8888的数据包,都转发到B服务器上的UDP端口9999。第二条命令则将所有从B服务器上的UDP端口9999返回的数据包,都转发回A服务器上的UDP端口8888。
接下来,我们需要在B服务器上启动一个UDP服务,监听UDP端口9999。例如,使用netcat命令可以启动一个简单的UDP服务:
```bash
nc -u -l 9999
```
现在,当从其他服务器发送UDP数据包到A服务器的UDP端口8888时,这些数据包将被转发到B服务器上的UDP端口9999,B服务器上的netcat服务将接收到这些数据包并进行处理。
需要注意的是,iptables命令配置的转发规则仅在当前系统重启后才会失效。如果需要永久保存这些规则,可以将这些命令添加到系统的启动脚本中。
iptables只允许192.168.2.20访问8090(TCP、UDP、IMCP)端口
可以使用以下命令实现:
```
iptables -A INPUT -s 192.168.2.20 -p tcp --dport 8090 -j ACCEPT
iptables -A INPUT -s 192.168.2.20 -p udp --dport 8090 -j ACCEPT
iptables -A INPUT -s 192.168.2.20 -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p tcp --dport 8090 -j DROP
iptables -A INPUT -p udp --dport 8090 -j DROP
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
```
解释:
- `-A INPUT`:添加规则到INPUT链
- `-s 192.168.2.20`:指定源IP地址为192.168.2.20
- `-p tcp/udp/icmp`:指定协议为TCP/UDP/ICMP
- `--dport 8090`:指定目标端口为8090
- `-j ACCEPT`:接受匹配的数据包
- `-j DROP`:丢弃匹配的数据包
以上命令先允许来自192.168.2.20的TCP、UDP、ICMP协议的数据包通过8090端口,然后丢弃其他来源的TCP、UDP、ICMP协议的数据包。