NAT&Port Forwarding&Port Triggering

NAT

Nat,网络地址转换协议。主要功能是实现局域网内的本地主机与外网通信。

在连接外网时,内部Ip地址需要转换为网关(一般为路由器Ip地址)(端口号也需要相应的转换)

如:QQ程序

在一个局域网中,路由器(网关)WAN侧ip为200.0.0.123

局域网三台计算机:计算机A 192.168.0.10,计算机B
192.168.0.20,计算机C 192.168.0.30

分别登陆一个qq程序,在各自机子上,IP和Port分别为

计算机A 192.168.0.10:4000,计算机B 192.168.0.20:4000,计算机C
192.168.0.30:4000

但是本局域网只有一个公网ip即200.0.0.123,因此三个qq域外网通讯据需要将ip转换为公网ip,相应地为了不使端口号冲突,Port号也需要进行转换。

路由器(网关)通过NAT协议将3个qq程序转换为 计算机A 200.0.0.123:4000,计算机B 200.0.0.123:4001,计算机C 200.0.0.123:4002,

再接收到qq服务器发来的数据流失,再讲Port4000的发给A,Port:4001的发给B

这就实现内网程序与外网的通讯。

Port Forwarding

前面叙述了内网程序如何访问外网。但是如果在内网搭建了服务器,外网如何访问内网服务器呢?Port
Forwarding提供了该功能。

假设局域网有一ftp服务器在计算机上,可以通过Port
Forwarding设置,使得200.0.0.123接收到的ftp流入包均直接转发给计算机A,即数据包在内网的目的地址直接是:192.168.0.10:21。即外网直接通过200.0.0.123:21就可以访问计算机A上的ftp服务器。

假设计算机A和B分别搭建了FTP服务器,端口号均为21.。。(局域网相关ip地址同上一例子)。 通过手动进行Port
Forwarding设置,指定计算机A的端口号映射为5050,指定计算机A的端口号映射为5051。 这样外网要访问服务器A的ftp地址时,则使用200.0.0.123:5050,访问服务器B的ftp:200.0.0.123:5051

Port Triggering

配置数据流出的端口(triggered port)和数据流出的端口(forwarded port)。

使得外网流入forwarded port的数据流均转向使用triggered
port的计算机。

在Port Forwarding仅有一个ftp服务器的例子中,可以设置计算机A(有ftp服务器)的端口为5050,然后配置triggered
port为5050,forwarded port为21,那流入port21的数据流就可以找到计算机A的ftp服务器。

——以上部分为个人理解,不保证准确。

NAT&Port Forwarding&Port Triggering

时间: 2024-11-10 11:40:57

NAT&Port Forwarding&Port Triggering的相关文章

路由器端口触发与转发---Port Forwarding & Port Triggering

What is Port Triggering? If you have not read my explanation of port forwarding do so now. You can find it here. Port triggering is pretty simple once you know what port forwarding is. Port Triggering is port forwarding with an on/off switch for the

路由器port触发与转发---Port Forwarding & Port Triggering

What is Port Triggering? If you have not read my explanation of port forwarding do so now. You can find it here. Port triggering is pretty simple once you know what port forwarding is. Port Triggering is port forwarding with an on/off switch for the

How to do SSH Tunneling (Port Forwarding)

In this post we will see how ssh works?, what is SSH tunneling? what is important of ssh tunnels and how to setup the ssh tunnel.When SSH server is installed in machine then by default its allowed ssh tunneling. SSH Tunneling (Port Forwarding) Tunnel

port forwarding in yosemite, a way to replace ipfw

login as root, or do the following in sudo. create a file /etc/pf.anchors/com.pow, add following two lines with new line breaker at the end: rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 rdr pass on lo0 inet proto tcp

Port Forwarding in Windows

转自:http://woshub.com/port-forwarding-in-windows/ Since Windows XP there is a built-in ability in Microsoft Windows to set up network ports forwarding. Due to it, any incoming TCP connection (IPv4 or IPv6) to local port can be redirected to another lo

使用Port Forwarding连接k8s集群的pod(redis、mysql等)

一. 创建Redis的deployment和service 1. 创建Redis deployment redis-master-deployment.yaml  apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 kind: Deployment metadata: name: redis-master labels: app: redis spec: selector: matchLabels: app: redi

[Monkeyrunner]waitForConnection()报错:Adb rejected adb port forwarding command: cannot bind socket

整理自: Stackoverflow(方法二亲测有效~~) Condition: a. adb device 有设备信息 b. Commands : Error: ...(error msg省略中)... Solution: 方法1:adb-killer +PC reboot 方法2:1. netstat -ano,找到12345 port的PID 2. 打开任务管理器,杀掉对应PID进程,Done~

从Android访问PC端的port (reverse port forwarding)

大致就是 Device side: install SSH Server, add ssh server on 22222 port and user q start ssh server PC side: adb forward tcp:22222 tcp:22222    //这是为了能够从PC访问android里的ssh server的22222端口. ssh -f -N -R 3000:localhost:3000  q@localhost -p 22222 Then you can u

iptables 通讯端口转接(Port Forwarding)

是一种特殊的DNAT操作,其作用是让一部电脑(通常是防火牆)担任其它电脑的代理伺服器(proxy).防火牆接收外界网络接传给它自己的包,然后改写包的目的地位址或目的端口,使其像是要送到內部网路其它电脑的樣子,然后才修改好的包送往新目的地.此外,来自內部网路的相关回复包,也会被防火牆改写成像是从防火牆自己发出的樣子,然后才送到外界电脑. 「通讯端口转接」通常用於提供內部网路的公开服务(像是web server或email server)给外界存取,而不需要一个以上的public IP.对於外界而言