Итак, у нас имеется роутерная тачка, выступающая в качестве сервака, и домашняя, которая ходит через этот роутер.
конфиг роутера:
$ cat /etc/network/interfaces
## This file describes the network interfaces available on your system
## and how to activate them. For more information, see interfaces(5).
## The loopback network interface
auto lo
iface lo inet loopback
## The primary network interface
allow-hotplug eth0
#auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 10.0.32.208
netmask 255.255.255.0
gateway 10.0.32.254
up route add -net 10.0.0.0/8 gw 10.0.32.254
up route add -net 192.168.0.0/16 gw 10.0.32.254
up route add -net 172.16.0.0/12 gw 10.0.32.254
up route add -net 95.69.128.0 netmask 255.255.224.0 gw 10.0.32.254
up route add -host 195.69.244.2 gw 10.0.32.254
up route del default
## The secondary network interface
allow-hotplug eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
конфиг домашней тачки:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
скрипт iptables для NAT:
#!/bin/bash
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
export LAN=eth1
export WAN=ppp0
iptables -I INPUT 1 -i ${LAN} -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT
iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.255.0 -j DROP
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/255.255.255.0 -j ACCEPT
#iptables -A OUTPUT 1 -i ${LAN} -j ACCEPT
#iptables -A OUTPUT 1 -i lo -j ACCEPT
##############################################
#Torrents #
##############################################
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 61926 -j DNAT --to-destination 192.168.0.2:61926
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 61926 -j DNAT --to-destination 192.168.0.2:61926
iptables -A FORWARD -d 192.168.0.2 -p tcp --dport 61926 -j ACCEPT
iptables -A FORWARD -d 192.168.0.2 -p udp --dport 61926 -j ACCEPT
###############################################
#DC++ #
###############################################
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 35477 -j DNAT --to-destination 192.168.0.2:35477
iptables -A FORWARD -d 192.168.0.2 -p tcp --dport 35477 -j ACCEPT
#
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 35466 -j DNAT --to-destination 192.168.0.2:35466
iptables -A FORWARD -d 192.168.0.2 -p udp --dport 35466 -j ACCEPT
#
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 35455 -j DNAT --to-destination 192.168.0.2:35455
iptables -A FORWARD -d 192.168.0.2 -p tcp --dport 35455 -j ACCEPT
#
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
значит на роутере-сервере запущен Verlihub. когда я захожу на хаб, то я виден под внутренним IP (192.168.0.2), а не под внешним (ставил listen_ip 10.0.32.208 в верли и коннектился к 10.0.32.208 - все равно пишет внутренний). В настройках DC++ (linuxdcpp) стоит внешний IP, если я ставлю внутренний - выкидывает с хабов и пишет, что 192.168.0.2 != 10.0.32.208. собственно весь вопрос заключается в том, как зделать, чтобы на своем хабе я был виден с внешним IP. squid не предлагать:)