Metainformationen zur Seite
STUN-Server einrichten
Das STUN-Protokoll definiert folgendes (http://www.ietf.org/rfc/rfc3489.txt):
- STUN ermöglicht einem Gerät dessen öffentliche IP und den Typ von NAT-Gerät hinter dem es hängt herauszufinden
- STUN arbeitet auf TCP und UDP Port 3478
- STUN ist inzwischen recht verbreitet und wird von vielen VOIP-Geräten unterstützt
- STUN kann DNS SRV-Einträge verwenden um STUN server einer bestimmten Domain herauszufinden. Der Servicename ist „_stun._udp or _stun._tcp“
1. Download des Sourcecodes nach /usr/src von:
http://sourceforge.net/projects/stun/
2. Entpacken und Kompilieren der Sourcen:
cd /usr/src tar xvfz stund_0.96_Aug13.tgz cd stund make mkdir /usr/local/stund cp server /usr/local/stund cp client /usr/local/stund
3. STUN-Server testweise starten:
cd /usr/local/stund ./server -v -h <main IP> -a <secondary IP>
4. STUN-Server testen (neues Konsolenfenster aufmachen):
cd /usr/local/stund ./client -v <main IP>
5. Wenn der STUN-Server antwortet ist alles OK
6. Hier noch ein Redhat kompatibles init-Script für den Server
#!/bin/sh # # Startup/shutdown script for the STUN-Server # # Linux chkconfig stuff: # # chkconfig: 35 90 10 # description: Startup/shutdown script for the STUN-Server # # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 0 fi DAEMON=/usr/local/stund/server IP1="86.109.254.36" IP2="86.109.254.37" prog=stund start () { echo -n $"Starting $prog: " # start daemon daemon $DAEMON -b -h $IP1 -a $IP2 RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/stund return $RETVAL } stop () { # stop daemon echo -n $"Stopping $prog: " killproc $DAEMON RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/stund } restart() { stop start } case $1 in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -f /var/lock/subsys/stund ] && restart || : ;; status) status $DAEMON ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|status}" exit 1 esac exit $RETVAL
Diskussion