Portál AbcLinuxu, 4. listopadu 2025 13:52
iptables -A INPUT -i eth0 -p TCP -s 0/0 -d 10.222.1.17 --dport 8088 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8088 -j DNAT --to 192.168.0.4:80 iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.4 --dport 80 -j ACCEPTv cyklech bych to videl takhle
let a=0;                                                                                            
for serverport in ${seznamserverportu[@]} ; do
iptables -A INPUT -i eth0 -p TCP -s 0/0 -d 10.222.1.17 --dport $serverport -j ACCEPT                      
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $serverport -j DNAT --to 192.168.0.4:80         
iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.4 --dport 80 -j ACCEPT 
let a=$a+1;                                                                                                     
done;
dale mi pak zbyva vnitrni ip adresa IP a port na kterem mi sluzba bezi .
Da se v jednom cyklu zapsat tri promenne a ne jen jedna .
A jak by mel mel vypada txt zaznam serveru ve kterem budou tri promene .     
            Řešení dotazu:
cat seznam.txt | awk '{print "iptables -A INPUT -i " $2 " -p TCP -s 0/0 -d " $4 " --dport " $6 " -j ACCEPT " }' | sh
cat seznam.txt | awk '{print "iptables -t nat -A PREROUTING -i " $2 " -p TCP --dport " $6 " -j DNAT --to " $8 ":" $10 }' | sh
cat seznam.txt | awk '{print "iptables -A FORWARD -p TCP -i " $2 " -d " $8 " --dport " $10 " -j ACCEPT " }' | sh             
A zde je formatovani seznamu , ktery se cte po radkach .
Vypis prvniho radku .
1 eth0 wan_ip 10.222.1.17 wan_port 8088 lan_ip 192.168.0.4 lan_portCele to funguje perfektne .
#!/bin/sh
( sed '
s/#.*$//
s/^ *//
s/ *$//
/^$/d' | while read host port; do
        iptables ... $host ... $port ...
done ) <<END
# vnoreny konfiguracni soubor
# komentar
1.2.3.4 22
2.3.4.5 80
# dalsi komentar
192.168.0.0/24 8080
# konec
END
# pokracovani shell skriptu
            
        Tiskni
            
                Sdílej:
                
                
                
                
                
                
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.