网络中的代理(proxy)是什么意思?
答:
proxy是一种网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。
例如:A机不能访问C机,但可以访问B机;
B机可以访问C机;
B机提供了proxy服务;
A机可以通过B机提供的proxy服务,来访问C机。
NAT是什么意思?
NAT和NAT网络不是同一个概念.
“NAT(地址转换)”:将私有IP(如192.168.1.100)转换为公有IP(如203.0.113.5),使内网设备能访问外网.
NAT的特性是数据包只出不进, 默认仅允许内网主动发起的连接,外网无法直接访问内网设备(除非配置端口映射)。
NAT网络是NAT(地址转换) + 虚拟网络管理(如DHCP).
NAT类似于一个动态的端口映射,基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP的私有IP双向转换为NAT的公共IP。
大白话就是,将内网地址翻译成外网地址。
SNAT和DNAT
- DNAT:
Destination Network Address Translation目的网络地址转换 - SNAT:
Source Network Address Translation源网络地址转换,其作用是将ip数据包的源地址转换成另外一个地址,
可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,
假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131)通信,A向B发出IP数据包,如果没有SNAT对A主机进行源地址转换,
A与B主机的通讯会不正常中断,因为当路由器将内网的数据包发到公网IP后,公网IP会给你的私网IP回数据包,这时,公网IP根本就无法知道你的私网IP应该如何走了。
所以问它上一级路由器,当然这是肯定的,因为从公网上根本就无法看到私网IP,因此你无法给他通信。为了实现数据包的正确发送及返回,
网关必须将A的址转换为一个合法的公网地址,同时为了以后B主机能将数据包发送给A,这个合法的公网地址必须是网关的外网地址,如果是其它公网地址的话,
B会把数据包发送到其它网关,而不是A主机所在的网关,A将收不到B发过来的数据包,所以内网主机要上公网就必须要有合法的公网地址,
而得到这个地址的方法就是让网关进行SNAT(源地址转换),将内网地址转换成公网址(一般是网关的外部地址),所以大家经常会看到为了让内网用户上公网,
我们必须在routeros的firewall中设置snat,俗称IP地址欺骗或伪装(masquerade)
查看当前网络NAT类型
pystun目前只能运行在 python2 下
# 安装pip2
yum install -y python2-pip
# 安装pystun
## 必需使用pip2安装
pip2 install pystun
# 查看当前网络的NAT类型
pystun
python2手动安装pystun
# 下载pystun
wget -c "https://files.pythonhosted.org/packages/a9/72/0b6a4f8ad71f72ed3b3946a21084a8b3c17de10ddc5fc0dfec43c48fc768/pystun-0.1.0.tar.gz"
# 解压
tar xvf pystun-0.1.0.tar.gz
# 进入目录
cd pystun-0.1.0/
# 安装
python2 setup.py install
一般NAT类型显示几种:
https://zhuanlan.zhihu.com/p/130901504
| NAT类型 | 解释 |
|---|---|
| Symmetric NAT | 对称NAT |
| Restric NAT | 限制NAT |
| Full Cone | 完全锥形NAT |


本文深入解析网络代理(proxy)的概念,阐述其如何在客户端与服务器间建立间接连接,解决访问限制问题。同时,详细解释了NAT(网络地址转换)的工作原理,包括SNAT(源网络地址转换)和DNAT(目的网络地址转换),探讨了局域网用户访问公网的技术细节。

4978

被折叠的 条评论
为什么被折叠?



