不同主机之间的相互连接

说在最前面

最近一次课程实验:

配置nginx的环境并用其进行负载均衡, 实验至少需要三台机器, 一台用作负载均衡器(lb), 两台Web服务器(web01, web02)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29tcHV0ZSBDaGlja2Vu,size_20,color_FFFFFF,t_70,g_se,x_16

可是找三台电脑太麻烦, 于是我就用我的电脑主机(windows11), VMware虚拟机(ubuntu20.04), 阿里云服务器(centos7.9)凑成了三台机器(我真是个小天才), 然后对它们进行连接

首先介绍测试网络的三个重要命令:

  1. ping {主机ip}
    测试与目标主机是否建立联系
  2. telnet {主机ip} {目标端口号}
    测试与目标主机是否建立联系, 以及端口是否开放
  3. curl {目标url}
    测试目标url是否可以使用

对windows的设置

我们都知道, 如果在windows的cmd内使用命令ipconfig, 无线局域网中的ipv4地址就是本机的ip地址, 但是在计算机网络中我们学过, 这是内网地址, 其他主机是无法访问的

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29tcHV0ZSBDaGlja2Vu,size_20,color_FFFFFF,t_70,g_se,x_16

复习一下计网, 三组内网地址:

10.0.0.0/8--------------10.0.0.0~10.255.255.255(A类)

172.16.0.0/12---------172.16.0.0~172.31.255.255(B类)

192.168.0.0/16 -------192.168.0.0~192.168.255.255(C类)

这时需要内网穿透

大家学过计网都知道NAT(网络地址转化), 内网穿透就是这样, 把内网中的本不可见的端点转化成公网中可以访问的url

使用内网穿透的时候你可能需要关闭防火墙和其他杀毒软件(360, 电脑管家, 火绒等)

操作: 使用cpolar工具(这个工具请另行百度), 用cmd打开cpolar.exe, 输入http {你要穿透的端口号}就可以了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29tcHV0ZSBDaGlja2Vu,size_20,color_FFFFFF,t_70,g_se,x_16

但是这还不够, 还需要保证其他机器和你的电脑在同一个局域网(wifi)下, 我试过我们学校的校园网好像不行, 但是手机的热点是可以的(家里的wifi应该也行)

对虚拟机的设置

对虚拟机的设置比较简单, 首先关闭防火墙 (或者也可以开启防火墙中你想要的端口号, 但是毕竟只是虚拟机, 别和自己过不去, 直接把防火墙disable, 所有端口全开得了), 不同版本虚拟机命令不一样, 具体操作不细说

然后在终端使用命令ifconfig, 就能获取虚拟机的ip地址了 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29tcHV0ZSBDaGlja2Vu,size_20,color_FFFFFF,t_70,g_se,x_16

注意, 这里仍然获取的是内网地址, 但是虚拟机是本机的一个附属主机, 所以它们是在一个同子网里面(我的虚拟机使用的是桥接模式), 所以主机是可以使用通过内网地址访问虚拟机的

对云服务器的设置

云服务器的设置也比较简单, 首先还是要关闭防火墙

然后设置云服务器的安全组 (安全组的意思是云服务器的哪些端口可以访问进来, 哪些端口可以访问出去), 这时也不要和自己过不去, 直接把所有端口的入方向和出方向都设置成全部开启

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29tcHV0ZSBDaGlja2Vu,size_20,color_FFFFFF,t_70,g_se,x_16

云服务器的公网和私网地址都可以在实例信息上看到, 用其他主机访问云服务器时一定要使用公网地址, 毕竟云服务器在人家阿里的公司里, 和你的主机没有半毛钱关系

如有任何问题还请大家批评指正, 不胜荣幸!

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 Python Socket 编程示例,可以实现两台主机之间相互发送消息进行交流。 服务端代码: ```python import socket host = '127.0.0.1' # 本地IP地址 port = 8888 # 端口号 # 创建 socket 对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定 IP 地址和端口号 server_socket.bind((host, port)) # 监听客户端连接请求 server_socket.listen(1) print('等待客户端连接...') # 等待客户端连接 client_socket, addr = server_socket.accept() print('客户端已连接:', addr) # 循环接收客户端消息 while True: # 接收客户端消息 data = client_socket.recv(1024).decode() print('客户端:', data) # 发送消息给客户端 message = input('服务端:') client_socket.send(message.encode()) # 关闭 socket 连接 client_socket.close() server_socket.close() ``` 客户端代码: ```python import socket host = '127.0.0.1' # 服务端 IP 地址 port = 8888 # 服务端端口号 # 创建 socket 对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务端 client_socket.connect((host, port)) print('已连接服务端:', (host, port)) # 循环发送消息 while True: # 发送消息给服务端 message = input('客户端:') client_socket.send(message.encode()) # 接收服务端消息 data = client_socket.recv(1024).decode() print('服务端:', data) # 关闭 socket 连接 client_socket.close() ``` 你可以在两台主机上运行上述代码,实现两台主机之间相互发送消息进行交流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值