IP,域名和端口号之间的联系

本文深入解析IP地址、域名和端口号的基本概念及其在网络通信中的作用,探讨它们之间的联系与区别,以及如何通过域名访问项目,确保网络访问的安全性和稳定性。

1.背景介绍

当我们把项目部署到自己的服务器上以后,一般可以通过两种形式访问项目,一种是ip+端口号,还有一种是域名访问.

那么这两种访问项目的方式的区别是什么呢?哪一种更好一些?IP,域名,端口号之间有什么联系呢?

2.知识剖析

IP,域名,端口号的基本概念

(1) IP

IP,(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给网络上使用IP协议的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。目前我们使用的都是IPv4的地址,IPv4地址由32位二进制数组成,常以XXX.XXX.XXX.XXX形式表现。(以上参考于维基百科)

通俗点说就是IP地址是用于标识出网络上的每一台主机的编号。有这个编号,网络上的其他主机才能在互联网浩若繁星的主机中定位到唯一的一台主机。

(2)域名

域名,(英语:domain name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。(以上参考于维基百科)

域名和IP地址之间有区别也有联系,域名通常会和IP进行绑定,通过访问域名来访问网络上的主机的服务。IP地址通常指的是网络中的主机,而域名则通常表示一个网站,一个域名可以绑定到多个ip上,多个域名也可以绑定到一个ip上。

(3)端口号

端口,(英语:port),主要分为物理端口和逻辑端口。我们一般说的都是逻辑端口,用于区分不同的服务。因为网络中一台主机只有一个IP,但是一个主机可以提供多个服务,端口号就用于区分一个主机上的不同服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口,标识是从0~65535.(以上参考于维基百科)

端口号分为公认端口(0~1023)、注册端口(1024~49151)和动态端口(49152~65535)。我们自己的服务一般都绑定在注册端口上。

3.常见问题及解决方案

(1)域名和端口号是怎么对应起来的?

客户端输入域名,通过DNS将域名解析成为服务器ip,找到代理服务器,因为http协议服务所占用的端口默认为80端口,所以会访问服务器的80端口,然后再通过代理服务器将请求转发到不同的服务器以及端口中.如图

 

域名和端口号的对应

(2)应该通过域名访问项目吗?

答案是必须的。

如果用IP+端口号的方式访问,会有以下后果

首先,非常难记,域名是对人友好的有含义的字符,而ip都是4组基本无规律的数字,对人不友好.

其次, 如果服务器中的资源发生迁移,那么原先的服务器ip地址就无效了,必须要重新使用新的ip地址访问服务器,用户还要再去记忆一遍IP地址。但是如果是使用域名则不存在这个问题.

最后, 不安全,通过ip直接访问服务器是非常危险的,相当于将整个服务器的大门向所有人打开,造成的后果是别有用心的人能够非常容易攻击到服务器.域名访问就能杜绝这种情况,用户是不知道服务器的IP地址的,而且就算有人通过域名恶意攻击,直接和用户交互的代理服务器也可以保护内容服务器。这样就算代理服务器被攻破,损失也相对较小。

(3)从域名服务商到服务器的流程是怎么样的?

个人理解就是域名解析过程。该过程如下图

 

域名解析过程

4.扩展思考

DNS的查询方式有几种?

有两种,递归查询和迭代查询

递归查询是一次查询就得到最终的结果.通常是主机到DNS服务器之间的查询方式

迭代寻址是有可能发生多次请求,并且每次得到的结果有可能只是参考答案.DNS服务器会使用迭代查询

5.参考文献

参考一:维基百科或百度百科

参考二:DNS原理入门

参考三:浅谈DNS基本原理以及实现方法

6.PPT链接

PPT



作者:淬火殇
链接:https://www.jianshu.com/p/806d0514ec7d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

### 百度IP地址查询与端口号配置使用 在计算机网络中,IP地址端口号是用于标识设备及其服务的关键技术。以下是关于百度IP地址查询、端口号配置及使用的详细信息。 #### 1. 百度IP地址查询 百度提供了一个API接口,用于查询IP地址的详细信息。通过调用该API,可以获取到与指定IP地址相关的地理位置数据。返回的结果以JSON格式呈现,包含详细的地址信息、经纬度等[^5]。 以下是一个示例代码,展示如何通过Java程序查询百度IP地址信息: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class BaiduIPQuery { public static void main(String[] args) throws Exception { String urlString = "http://api.map.baidu.com/location/ip?ak=您的API密钥&ip=目标IP地址"; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); System.out.println(content.toString()); } } ``` #### 2. 端口号配置 端口号是用于标识特定服务或应用程序的数字标识符。通常,端口号分为三类:熟知端口(0-1023)、注册端口(1024-49151)动态/私有端口(49152-65535)。配置端口号时,需确保其与对应的服务匹配,并避免冲突[^4]。 在服务器上配置端口号时,可以通过修改服务配置文件实现。例如,在Tomcat服务器中,可以在`server.xml`文件中调整HTTP连接器的端口号: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 将`port`属性更改为所需的端口号即可[^3]。 #### 3. IP与端口的关系 IP地址用于标识网络中的设备位置,而端口号则用于区分同一台设备上的同服务。两者结合形成一个完整的通信地址,形如`IP:端口`。例如,`192.168.1.1:80`表示访问位于局域网内的设备上的HTTP服务[^1]。 #### 4. 查看本机IP地址与端口 查看本机IP地址的方法因操作系统而异。在Windows系统中,可以通过命令行输入`ipconfig`命令获取;在Linux或macOS中,可使用`ifconfig`或`ip addr`命令。至于端口号,可通过`netstat -an`命令列出当前正在使用的端口及其状态[^3]。 ### 示例代码 以下是一个Java程序,演示如何获取本机IP地址及指定域名对应的IP地址: ```java import java.net.InetAddress; public class InetAddressTest { public static void main(String[] args) throws Exception { // 获取本机IP地址对象 InetAddress ip = InetAddress.getLocalHost(); System.out.println("主机名: " + ip.getHostName()); System.out.println("IP地址: " + ip.getHostAddress()); // 获取指定域名IP地址对象 InetAddress ipBaidu = InetAddress.getByName("www.baidu.com"); System.out.println("百度主机名: " + ipBaidu.getHostName()); System.out.println("百度IP地址: " + ipBaidu.getHostAddress()); // 检查是否能ping通 System.out.println("是否可达: " + ipBaidu.isReachable(6000)); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值