公网IP地址和局域网IP地址是计算机网络中用于识别设备位置的两种不同类型的IP地址。它们的主要区别在于它们各自的使用范围和访问权限。
公网IP地址
- 定义:公网IP地址是在整个互联网上唯一标识一个网络设备的地址。这意味着在全球范围内,每个公网IP地址都是独一无二的,可以用于直接访问连接到互联网的任何设备。
- 用途:用于互联网上的服务器、路由器或其他需要直接访问的网络设备。它允许这些设备被互联网上的其他设备访问和识别。
- 获取方式:通常由互联网服务提供商(ISP)分配给家庭或企业用户。对于动态IP地址,ISP可能会在每次设备连接到互联网时分配一个新的公网IP;对于静态IP地址,分配给用户的公网IP地址在长时间内保持不变。
局域网IP地址
- 定义:局域网IP地址用于在私有网络内部标识设备,比如家庭、学校或企业网络。这些地址在局域网内是唯一的,但在不同的局域网中可以重复使用。
- 用途:主要用于内部网络中设备的相互通信。局域网中的设备通过私有IP地址进行识别和数据交换,这些地址通常由网络内的路由器或DHCP服务器动态分配。
- 范围:私有IP地址有特定的范围,最常见的包括
192.168.x.x
、10.x.x.x
和172.16.x.x
到172.31.x.x
。这些地址被设计为仅在私有网络内部使用,不应直接在互联网上使用。
两者的互动
- 在大多数家庭和企业网络中,多个设备(使用局域网IP地址)通过路由器连接到互联网。这些设备对互联网来说不是直接可见的。
- 路由器使用网络地址转换(NAT)技术将局域网内部的私有IP地址转换为单个公网IP地址进行互联网通信,这样多个设备就可以共享同一个公网IP地址访问互联网。
- 要从互联网访问局域网内的特定设备(例如,通过SSH或远程桌面),通常需要在路由器上设置端口转发,将外部的访问请求从公网IP地址映射到局域网内特定设备的私有IP地址上。
总结来说,公网IP地址用于在全球范围内唯一标识和访问互联网上的设备,而局域网IP地址用于在私有网络内部识别和连接设备。两者通过路由器和NAT技术协同工作,以支持复杂的网络通信需求。
SSH公网访问
SSH(Secure Shell)可以用来在不同网络之间安全地访问和管理远程系统。即使不在同一个局域网(LAN)内,只要远程系统具有公网IP地址或者通过网络地址转换(NAT)可从互联网访问,你就可以通过SSH访问它。以下是实现此过程的基本步骤:
1. 确保远程主机开启了SSH服务
- 在大多数Linux发行版和macOS上,SSH服务默认可能已经安装并运行。你可以通过运行
systemctl status ssh
(在Systemd管理的系统上)或者service ssh status
(在其他系统上)来检查SSH服务的状态。 - 对于Windows系统,可以使用OpenSSH服务器组件,这在最近版本的Windows 10和Windows Server上可用。
2. 获取远程主机的公网IP地址
- 如果你想要从不同的网络通过SSH连接到远程系统,你需要知道该系统的公网IP地址。你可以在远程主机上访问诸如
http://whatismyip.com
的网站来查找此信息,或者从远程系统的网络提供商(ISP)或网络管理员那里获取。
3. 配置端口转发(如果需要)
- 如果远程系统位于路由器后面,你可能需要在路由器上配置端口转发,以允许从外部网络通过SSH访问。这通常意味着将路由器上的某个端口(通常是22,SSH的默认端口)转发到内部网络中远程主机的IP地址和端口。
- 你需要登录到路由器的管理界面来设置端口转发。具体步骤因路由器而异,因此请参考你的路由器手册或在线帮助文档。
4. 使用SSH客户端连接
- 一旦远程主机配置正确并且可从互联网访问,你就可以使用SSH客户端软件从任何地方通过其公网IP地址连接到它。在Linux和macOS上,你可以直接使用终端;在Windows上,你可以使用PuTTY或Windows 10自带的OpenSSH客户端。
- 连接命令通常如下所示:
ssh username@remote_public_ip
- 如果你在路由器上设置了非标准端口转发(不是22端口),你需要指定端口号:
ssh -p port_number username@remote_public_ip
安全注意事项
- 使用SSH时,考虑使用密钥对认证而不是密码,以增强安全性。
- 确保远程主机安装了最新的安全更新和补丁。
- 考虑更改默认的SSH端口(22)来减少自动化攻击。
- 使用防火墙限制可以尝试SSH连接的IP地址,增加一层额外的保护。
通过遵循这些步骤,可以安全地从不同网络通过SSH访问和管理远程系统。
SSH局域网访问
在局域网(LAN)内通过SSH访问远程主机是一种常见的做法,用于远程管理和文件传输。以下是实现这一过程的基本步骤:
1. 确保SSH服务在远程主机上已启用
- 对于Linux和macOS系统,SSH服务通常已预装,你可能需要手动启动或确保它自动启动。可以通过以下命令来启动SSH服务:
- 在使用Systemd的系统上:
sudo systemctl start ssh
- 在使用init的系统上:
sudo service ssh start
- 确保SSH服务设置为开机启动:
sudo systemctl enable ssh
(对于Systemd)或通过相应的方法使其在init系统上启动。
- 在使用Systemd的系统上:
- 对于Windows系统,你可以安装并启用OpenSSH服务器。在Windows 10的较新版本中,这可以通过“设置” > “应用” > “可选功能” > “添加功能”来完成。
2. 确定远程主机的IP地址
- 在局域网内,你需要知道远程主机的局域网IP地址。在远程主机上,你可以通过以下方法来查找IP地址:
- 在Linux/macOS上:运行
ifconfig
(某些系统上可能是ip address
)。 - 在Windows上:运行
ipconfig
。
- 在Linux/macOS上:运行
- 记录下与你想要SSH连接的网络接口相关联的IP地址。
3. 从客户端计算机上使用SSH连接到远程主机
- 确保你的客户端计算机上已安装SSH客户端。Linux和macOS系统默认包含SSH客户端。Windows用户可以使用PuTTY,或者利用Windows 10的较新版本中内置的OpenSSH客户端。
- 使用SSH连接到远程主机,替换下面的
username
和remote_host_ip
为远程主机的实际用户名和IP地址:ssh username@remote_host_ip
- 如果是第一次连接到该远程主机,可能会看到一个关于主机密钥的安全警告。确认继续连接,该密钥将被添加到你的客户端的
~/.ssh/known_hosts
文件中,以后的连接将自动验证。
注意事项
- 安全配置:默认情况下,SSH使用端口22。为了安全起见,你可以考虑更改默认端口,使用防火墙限制访问,以及使用密钥而不是密码进行身份验证。
- 网络问题:如果无法连接,请检查局域网的网络设置、防火墙规则和SSH服务状态。
- 权限:确保你尝试连接的用户在远程主机上具有SSH访问权限。
通过遵循这些步骤,你就可以在局域网内通过SSH安全地访问和管理远程主机了。