内网FTP服务器如何连接外网
如果作为服务器的计算机有合法的公网IP,并且单位没有在防火墙上关闭FTP端口(TCP协议的21端口)那么直接就可以被Internet中的计算机访问到。
网络采用专线方式(如光缆、DDN、专线ADSL等)接入Internet,并拥有合法的静态IP地址,但作为服务器的计算机没有合法的公网IP地址,而是通过代理服务器或路由器的NAT方式共享Internet连接就需要在Windows连接共享、代理服务器软件(SyGate、WinGate或ISA)或路由器上作端口映射(PAT),将端口号映射到服务器的IP地址,使得Internet用户在访问某端口时将相关请求转发到对应服务器上。
局域网采用动态IP地址(如虚拟拨号ADSL)的,还必须在代理服务器上安装动态域名系统(如花生壳、个人服务器伴侣、DIPDNS等),最后设置端口映射。
2018-12-11
外网 路由器 访问地址
11424876186 用户名:admin 密码:省略
windows 2012 内网服务器
ipconfig 192168122 内网地址
在目标主机,打开“开始→运行”,输入“regedit”,打开注册表,
进入以下路径:修改数值的话需要修改注册表的两个地方:
第一个地方:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp
PortNumber值,默认是3389,修改成所希望的端口,比如我的改为4489。
第二个地方:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
PortNumber值,默认是3389,修改成所希望的端口,比如我的4489,这个修改跟前一个修改端口相同。
关闭防火墙
设置登录用户名和密码
参考 https://blogcsdnnet/kxwinxp/article/details/78560402
输入:11424876186:8389 用户名Administrator 密码:略
配置完成
内网能远程连接服务器,外网不能:
原因:内网映射的外网内网访问不了,内网模拟不了外网映射访问,只能访问内网服务器,不然容易形成闭环
解决办法:
找个外网的人访问这个外网ip port
对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行通信测试,有时候我们或者会想,我们现在写的内网网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外网的呢?
再者,我们大多人都是使用宽带上网,结果发现,A 和 B 的局域网 IP 都是1921683111,当他们都访问百度浏览网页时,百度服务器回复数据时,如何区分是给 A 还是给 B 呢?
公有 IP 和私有 IP 的区别
首先,我们需要了解一下什么是公有 IP 和私有 IP ?
公有地址(Public address):由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请的组织机构,公有 IP 全球唯一,通过它直接访问因特网(直接能上网)。
私有地址(Private address):属于非注册地址,专门为组织机构内部使用,说白了,私有 IP 不能直接上网。
而我们平时通过运营商(电信、移动、联通宽带等)上网,家里面通过路由器分出来的 IP 都是私有 IP(局域网 IP),大家可能会疑问,我们可以上网啊,怎么会是私有 IP 呢?
租用(申请)公有 IP 是需要钱的。 运营商买了一些公有 IP,然后通过这些公有 IP 分出来,再分给一个一个的用户使用。这个过程有点类似于,我们去安装了宽度,通过路由器分出几个 IP,让好几个人都能上网,当然运营商通过公有 IP 分出来的过程肯定比这个复杂多了。所以,我们平时上网用的 IP 是私有 IP,真正拥有公有 IP 的是运营商(当然,我们可以租用一个公有 IP )。所以,A 家庭的局域网 IP 和 B 家庭的局域网 IP 相同很正常,但是,最终 A 和 B 能上网(数据走出去)还是通过运营商的公有 IP,毕竟,公有 IP 的资源有限,这一片区域的用户使用的很有可能(实际上就是这样的)是同一个公有 IP,这样的话,又回到前面的问题,假如 A 和 B 的局域网 IP 相同(1921683111),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?
端口映射
接下来,给大家介绍一下什么是端口映射?
端口映射是 NAT 的一种,它将外网主机的 IP 地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。
现在市场上的家庭路由器都具备 NAT 功能,也可以实现端口映射。下图为小米路由器的端口映射设置图:
我们平时经过路由器,通过宽带,最终去到运营商那边,数据是从运营商出去,最终数据是回到运营商那边,运营商再把数据发送到用户的电脑。
路由器,至少有两个端口:WAN 口和 LAN 口。
WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包,这个口的 IP 是唯一的。
LAN:接内部 IP 地址用,LAN 内部是交换机。
这里,我们简化这个过程,我们把运营商当做一个 NAT 设备。
为了方便大家理解,我们把 IP 的转化方向反过来分析(准确来说,公网转局域网)。
A 电脑的 IP 是局域网 IP(1921683111),这个 IP(1921683111)是从路由器的 lan口分配的。
当我们上百度的时候,经过路由器的 wan口,进行相应的IP、端口转化:1921683111:80 -> 10221024:8080,所以,从 wan口出去的地址为:10221024:8080。
最后,经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网 IP(10221024:8080)转化为公网 IP(128001:8888),通过这个公网 IP 去访问百度服务器。
同理,B 的过程也是一样。通过这样的层层端口映射,最终保证地址(IP + 端口)的唯一性。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。
作为可以实现远程连接的内外网转换工具花生壳来说,它是一个动态域名解析软件。当您安装并注册花生壳动态域名解析软件,无论您在任何地点、任何时间、使用任何线路,均可利用这一服务建立拥有固定域名和最大自主权的互联网主机。“花生壳动态域名解析软件”支持的线路包括普通电话线、ISDN、ADSL、有线电视网络、双绞线到户的宽带网和其它任何能够提供互联网真实IP的接入服务线路,而无论连接获得的IP属于动态还是静态。 花生壳动态域名解析软件为千万的域名提供动态域名解析服务,并广泛应用于网站建设、视频监控、遥感测绘、FTP、***、企业OA、ERP等应用领域。
对于我们网络开发的人员来说,经常会用到TCP,UDP协议,但是通常情况下,是在局域网内的协议交互通信。可你们有想过吗?如果是涉及到内网和外网的交互呢?也就是说局域网和公网是怎么 交互呢?
假设有两台主机A和B,他们分别处于不同的局域网下,他们的局域网IP都是19216812。在同一个时刻,他们都访问百度服务器,那作为百度服务器是怎么分别回复这两台主机的呢?或者是服务器怎么区分A和B呢?
我们先来了解一下公网IP和私有IP的概念。
公有地址(Public address) :由 Inter NIC(因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请的组织机构,公有 IP 全球唯一,通过它直接访问因特网(直接能上网)。主要有A、B、C、D、E五类地址:
私有地址(Private address) :属于非注册地址,专门为组织机构内部使用,说白了,私有 IP 不能直接上网。主要有A、B、C三类,A类地址范围是10000-10255255255 ,B类地址范围是1721600-17231255255,C类地址范围是19216800-192168255255。
127000 到127255255255 为系统环回地址。
而我们平时通过运营商(主要是电信、移动、联通宽带等)上网,通过家用路由器之后,就会变成私有IP,大家可能会疑问,我们可以上网啊,怎么会是私有 IP 呢?
其实我们不是通过私有IP上网的,是通过公有IP。通俗的讲,运营商有公有IP,但是IPV4下IP资源有限,所以这些IP不能每个人分配单独分配一个IP,所以需要动态给上网的用户。 这个过程有点类似于,我们买了一些笔,然后将这些笔分给全班学生使用,当然运行商动态分配公有IP的过程比这个复杂多了。
所以A和B的IP相同是很正常的一件事情,但是对于百度服务器来说,它并不关心对方的私有IP是什么,它也不知道,它只知道访问它的肯定是公有IP。
那问题来了,还是老问题,既然最终访问百度服务器是公有IP,那A和B私有IP到公有IP的转换怎么完成的呢?当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?
在讲原理之前我们先了解一个概念,端口映射?
思路: 既然端口映射可以将一台外网 IP 地址机器多个端口映射到内网中不同机器上的不同端口。那当用户访问外网 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。
比如,我们在内网中有一台主机,但是外网中的用户是没有办法直接访问该服务器的。于是我们可以在路由器上设置一个端口映射,只要外网用户访问路由器ip的80端口,那么路由器会把自动把流量转到内网主机的80端口上。并且,在路由器上还存在一个Session,当内网服务器返回数据给路由器时,路由器能准确的将消息发送给外网请求用户的主机。在这过程中,路由器充当了一个反向代理的作用,他保护了内网中主机的安全。
我们平时上网的过程就是先经过路由器,然后通过宽带,最终通过运营商的转换最终到web服务器的,返回的数据先到运营商那边,然后再把数据发送到用户的主机上。
我们都知道路由器有两个端口: LAN 口,WAN 口。
WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包。
LAN:接内部 IP 地址用,LAN 内部是交换机。我们可以不连接 WAN 口,把路由器当做普通交换机来使用。
下面我们来看看到底怎么通信的。为了便于理解,我们把运营商当做一个 NAT 设备。
为了方便大家理解,我们把 IP 的转化方向反过来分析(准确来说,公网转局域网)。
A 主机IP 是私有 IP(19216812),该IP是从路由器的 LAN口分配的。暂不讨论是如何获取的,这涉及到自动获取还是手动分配的。
当我们访问百度服务器的时候,经过路由器的 wan口,进行相应的IP、端口转化: 19216812:80 -> 10221024:8080 ,所以,从 wan口出去的地址为: 10221024:8080 。
通过 10221024:8080 能访问外网吗 ? 显然不行,因为还是私有IP。还需要一个步骤:转换为公网IP。
经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网 IP( 10221024:8080 )转化为公网 IP( 128001:9999 ),通过这个公网 IP 去访问百度服务器。
同理,B 也是一样的过程。通过这样的层层端口映射,最终保证地址(IP + 端口)的唯一性。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。
0条评论