公网和内网

本文介绍了Internet保留地址和非保留地址,保留地址用于局域网等,非保留地址可用于Internet连接。还阐述了内网和公网两种接入方式及NAT协议。此外,介绍了远程控制工具VNC和UltraVNC,包括VNC的组成、支持系统和工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. Internet保留地址和非保留地址

  1. 保留地址不可以用于internet,一般是局域网或者一些特殊的ip。保留地址一般有如下三种情况:

10.x.x.x

172.16.x.x至172.31.x.x

192.168.x.x

  1. 非保留地址直接可以用到internet连接,例如在网上经常看到的ip地址如218.251.143.25之类就是非保留地址。

二. 内网和公网

内网和公网是两种internet的接入方式:

  1. 内网接入方式:上网的计算机得到的IP地址是internet上的保留地址。内网的计算机以NAT(network address translator,网络地址转换)协议,通过一个公共的网关访问internet。内网的计算机可以向internet上的其他计算机发送连接请求,但是internet上的其他计算机无法向内网的计算机发送连接请求。

2.公网接入方式:上网的计算机得到的IP地址是internet上的非保留地址。公网的计算机可以和internet上的其他的计算机随意互相访问。

3.NAT:network address translator,它实现内网的ip地址与公网的地址之间的相互转换,将大量的内网ip地址转换为一个或者少量的公网ip地址,减少对公网ip地址的占用。

简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为院子的出口大门)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用。这样,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有的内部网计算机对公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。

广域网(WAN、公网、外网)与局域网(LAN、私网、内网)电脑交换数据要通过路由器或网关的NAT(网络地址转换)进行。一般说来,局域网(LAN、私网、内网)内电脑发起的对外连接请求,路由器或网关都不会加以阻拦,但来自广域网对局域网内电脑电脑连接的请求,路由器或网关在绝大多数情况下都会进行拦截,这就是常说的路由防火墙. 如图:左边的Internet是广域网(WAN、公网、外网),右边的是局域网(LAN、私网、内网),他们要进行数据通信,必须经过中间的网关或路由器进行NAT(网络地址转换)。 通常情况下,网关或路由器对内部向外发出的信息不会进行拦截,但对来自外部想进入内部网络的信息则会进行识别、筛选,认为是安全的、有效的,才会转发给内网电脑。正是这种情况的存在,才导致了很多内网QQ、Netmeeting.IP电话等难于联接接到“远程”,速度也不尽如人意。。。,在这种情况下,如果你的朋友直接接入外网,你在内网,你可以主动呼叫他,比他呼叫你的成功率高得多…… 总的来说,内网和外网没有质的分别,只是相对而言,运行支持的是相同的TCP/IP协议,有点类同于点和面的概念…

三. VNC

  1. Virtual Network Computing,虚拟网络计算机。VNC是一款优秀的远程控制工具软件,由AT&T的欧洲研究实验室开发。
  2. VNC由两部分组成:客户端端应用程序vncviewer 和 服务器端应用程序vncserver. Viewer端是控制用的,Server端是被控制用的,如果你想控制某台电脑必须在此电脑上安装Server端,另一台控制端上安装Viewer端。安装时会有提示,根据需要选择安装,用户需先将VNC server安装在被控端的电脑上,才能在主控端执行VNC viewer控制被控端。
    VNC server 与 VNC viewer支持多种操作系统,如Unix系列(Unix、Linux、Solaris等),windows及MacOS,因此可将VNC server 及VNC viewer分别安装在不同的操作系统中进行控制。如果目前操作的主控端计算机没有安装VNC viewer,也可以通过一般的网页浏览器来控制被控端。
  3. 整个VNC运行的工作流程如下:
    (1) VNC客户端通过浏览器或者VNC viewer连接至VNC Server。
    (2) VNC Server传送一个对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。
    (3) 客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。
    (4) 若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。
    (5) VNC Server通过 X Protocol 要求 X Server 将画面显示控制权交由VNC Server负责。
    (6)VNC Server将由X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。
    四. UltraVNC
    UltraVNC是客户端/服务器软件,允许你经由TCP/IP连接、控制远端的电脑。
<think>嗯,用户想了解如何用Nginx配置外网跳转访问内网的最佳实践。这是个典型的生产环境网络配置问题,需要结合安全性可用性考虑。参考了几个站内引用发现,核心要点在于proxy_pass的正确使用Header透传。引用[2]展示了完整的server块配置,特别注意到它同时处理了HTTPHTTPS流量,还配置了SSL证书HTTP/2优化。这种写法对用户特别有参考价值。用户上次问过类似问题,这次着重问"最佳实践",说明可能是生产环境部署。需要强调几个关键点:第一是安全必须放在首位,SSL配置不能马虎,引用[2]的ssl_ciphers使用了HIGH:!aNULL:!MD5就很规范。第二是内外网地址映射要精确,引用[1][3]都出现了proxy_pass结尾斜杠的处理差异,这点必须重点说明。第三是考虑到兼容性问题,引用[2]同时配置IPv4/IPv6的做法值得推荐。用户没有提到具体业务场景,但根据引用[1]提到的系统登出问题,应该提醒保留原始URL信息。引用[3]展示的X-Forwarded-Proto设置正好解决这个问题,这个细节容易被忽略但很重要。配置示例需要展示完整参数,特别加入proxy_redirectoffX-Real-IP这些引用中多次出现的核心指令。最后配置检查命令必不可少,引用[2]提到的nginx-treload流程要写清楚。</think> 下面是根据Nginx配置外网跳转内网的最佳实践方案,结合关键配置要点完整示例: --- ### 核心配置原则 1. **安全通道** 务必通过HTTPS加密外网访问(监听443端口+SSL证书) 2. **精准地址映射** `proxy_pass`指向内网服务地址(含端口) 3. **Header透传** 保留原始请求信息(Host/IP等),避免内网服务获取错误数据 4. **协议强制跳转** HTTP请求自动跳转HTTPS(提升安全性) --- ### 完整配置示例 ```nginx server { # 监听端口(同时支持HTTP/HTTPS) listen 80; listen 443 ssl http2; listen [::]:80; listen [::]:443 ssl http2; # IPv6支持 # 域名与证书 server_name example.com; # 替换为实际外网域名 ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/cert.key; ssl_session_timeout 1d; ssl_protocols TLSv1.2; # 强制HTTPS跳转(443请求自动重定向) if ($scheme != "https") { return 301 https://$host$request_uri; } # 根路径转发 location / { proxy_pass http://192.168.1.100:8080; # 内网服务地址:端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 透传原始协议 proxy_redirect off; # 禁止自动修改响应头Location } # API接口特殊路径转发 location /api/ { proxy_pass http://192.168.1.101:9095/; # 注意结尾斜杠 proxy_set_header X-Forwarded-Host $server_name; } } ``` --- ### 关键参数说明 | 指令 | 作用 | 必选 | |-----------------------|----------------------------------------------------------------------|------| | `proxy_pass` | 指定内网服务地址(需带端口) | ✅ | | `proxy_set_header Host` | 透传客户端原始域名,避免内网服务丢失虚拟主机配置 | ✅ | | `X-Forwarded-Proto` | 告知内网服务原始协议(http/https),解决登出跳转错误[^1] | ✅ | | `proxy_redirect off` | 禁用自动修改响应头,防止内网重定向地址被篡改[^1] | ✅ | | `X-Real-IP` | 传递真实客户端IP,解决内网日志记录全是Nginx IP的问题 | ✅ | | `ssl_certificate` | HTTPS加密保障数据传输安全 | ✅ | --- ### 调试与验证流程 1. **配置检查** ```bash nginx -t # 返回successful说明语法正确 ``` 2. **重载配置** ```bash nginx -s reload ``` 3. **访问验证** - 外网访问`https://example.com`测试连通性 - 检查内网服务日志确认收到正确客户端IP - 测试登出功能避免循环重定向[^1] --- ### 常见问题解决 - **登出跳转内网IP** 检查`proxy_set_header X-Forwarded-Proto $scheme;`是否透传协议,内网服务需基于`X-Forwarded-Proto`生成跳转地址[^1][^3] - **502 Bad Gateway** 1. 确认内网服务运行状态 2. 检查防火墙是否放行Nginx到内网的端口 3. 验证`proxy_pass`地址是否含协议头(如`http://`) - **混合路径404错误** 在`location /api/`中,`proxy_pass`结尾的`/`会去除请求中的`/api`前缀(如`/api/user` → `http://内网IP/user`)[^3] --- ### 进阶优化 1. **连接池复用** ```nginx upstream backend { server 192.168.1.100:8080; keepalive 32; # 维持长连接 } location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; } ``` 2. **动静分离** 静态资源直返本地,减轻内网压力: ```nginx location ~* \.(js|css|png)$ { root /path/to/static; expires 7d; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值