VNC router mögül

 ( sleepy | 2006. július 10., hétfő - 11:09 )

Hi,

Volna egy olyan problémám, h VNC-t szeretnék használni egy router mögött lévő gépre, de a routerrel nem lehet átirányítani a 0 portot amivel mondjuk LAN-on belül kifogástalanul megy. Van valakinek valami használható ötlete, hogyan lehetne ezt megoldani?

Segíŧségeteket előre is köszi. :)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

"nem lehet átirányítani a 0 portot" :)

A vnc az 5900-s portot használja kommunikációra. Az a 0-s port a Display Number.

Tapasztalatom szerint a 0-as displayt a rendszer meghagyja a
localusernek, a távoliak pedig az 1,2,3...stb displéhekre
jelentkezhetnek be az 5900+displéh number-porton, tehát nem
biztos, hogy az 5900-as porttal működni fog a rendszer.
Célszerű egy port intervallumot kinyitni, vagy az 5901-esen
nyomulni.

Kliens oldalról ez így néz ki:

vnc tavoli_server_ip:1, ahol a ':' a szintaxis része, az '1' pedig
a display illetve a port offset.

Itt egy iptables konfig segítségül:

#!/bin/sh

echo " "
echo "Meditor Digital Strategies since 1989."
echo " - www.meditor.hu -"
echo " Sol omnibus lucet."
echo "--------------------------------------"
echo " Configure iptables... "

cd /usr/local/meditor/
date >> ./forward_run.last

echo "0" > /proc/sys/net/ipv4/ip_forward

##
## initiation & parameters
##

iptables -t nat -F
iptables -t mangle -F

GENTO_SERVER_IP=192.168.xxx.xxx
OUTSIDE_IP=82.xxx.xxx.xxx
OUTSIDE_DEVICE=ppp0
INSIDE_DEVICE=eth1
INSIDE_NETWORK=192.168.xxx.0
INSIDE_NETMASK=255.255.255.0

iptables -t nat -A POSTROUTING -o $OUTSIDE_DEVICE -j MASQUERADE

##
## SETTING FOR VNC SERVICES
##
iptables -A INPUT -p tcp --dport 5901 -i $OUTSIDE_DEVICE -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d $OUTSIDE_IP --dport 5901 -j DNAT --to $VNC_SERVER_IP:5901
iptables -A FORWARD -p tcp -d $GENTO_SERVER_IP --dport 5901 -o $INSIDE_DEVICE -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d $GENTO_SERVER_IP --dport 5901 -s $INSIDE_NETWORK/$INSIDE_NETMASK -j SNAT --to $OUTSIDE_IP

##
## strore result
##
iptables -L > ./iptables.lst
iptables -t nat -L > ./nat.lst

#
#echo 7 > /proc/sys/net/ipv4/ip_dynaddr
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#

echo "1" > /proc/sys/net/ipv4/ip_forward

echo " See detailes in /usr/local/meditor/"
echo " ** DONE **"

#
# end of script
#

> Sol omnibus lucet.

ssh tunellel megoldhato:

http://www.inf.bme.hu/~pts/ssh_rsync_tunnel_masolas.txt

ertelemszeruen alkalmazva vnc-re

udv Zoli

Köszi a segítséget, mindjárt meg is nézem :)

"A Linux egy felhasználóbarát rendszer. De megválogatja, hogy kikkel barátkozik!"

Hasonló a problémám nekem is, router nélkül. Van egy helyi hálózat, ahol az egyik gépen becsorog az internet amit megosztottam a többi kliens gépnek. Azt kellene megoldani, hogy a kliens gépeket is eltudjam érni VNC-vel (vagy bármi mással) az internetről. Egyébként, Windowsban találtam erre megoldást, van egy remote program, az be tud csatlakozni az internetmegosztó gépre (a saját szerveréhez), és onnan tovább tud menni a helyi hálózat bármelyik gépére amelyiken van neki szervere. Ezt kellene megoldani valahogy Linuxban is.

Mondjuk OpenVPN-el a gépedet a távoli háló részévé teszed, és már mehet is a móka (VNC, Rdesktop, Remote X, ssh, stb..) bármelyik gépre.

-Mr-

Én a következő képpen oldottam meg:
Xp-s gépre felraktam a VNC szervert es átraktam, hogy 6001 -es porton fogadja a kapcsolatokat.
Majd egy tűzfal szabállyal atírányitottam a router 6001 -es portjára érkező hívásokat a belső XP-s gépre.

iptables -t nat -A PREROUTING -p tcp -s 0/0 -d router_ip --dport 6001 -j DNAT --to belso_ip:6001