01、处于不同局域网下的Socket通信(配置)

 

目录

原理

一、公网IP

二、frp配置

1、在服务器上配置

2、在客户端配置

配置安全组

参考学习的网站


 

原理

拥有一台有公网IP的云服务器作为中转站,将局域网下的电脑将数据信息发送给中转的服务器,然后这个中转的服务器将收到的数据转给另外一台电脑,这样就可以实现两台电脑之间的互相通信。

原因:我们可以实现在局域网下的通信而不能在不是同一局域网下的通信是因为,不同的私网之间是无法通信的,我们使用的192.168.x.x都是私网,但是所有的私网却都可以和公网ip直接通信的。所以。想要在两个私网之间通信的话,我们就需要多一个步骤,也就是需要一个公网的IP作为中转站。

01、处于不同局域网下的Socket通信(配置)_第1张图片

一、公网IP

我租的是华为云学生服务器,比较适合学生党。

华为云的官方网站:https://www.huaweicloud.com/product/

租赁的流程是:申请一个账户 —> 实名登记(人脸或者是身份证) —> (24岁以下无需学生证登记) —> 购买学生云服务器

(我租赁的弹性云服务器)规格以及镜像是:

该服务器租赁之后,服务器就会一直运行,点击下方的远程登录输入账户和密码,就可以登录到控制台

01、处于不同局域网下的Socket通信(配置)_第2张图片

(对于这个配置比较低的服务器来说,我建议直接在控制台操作就OK,不要去装在图形化界面了,因为装了前前后后大概需要八九百MB,而且十分卡,所以需要适应Linux的命令行界面,前提是需要有一点linux的基础)

其中在IP地址处就可以看到公网IP了,这个需要记住

二、frp配置

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

即:通过frp配置服务器来实现中转站的功能

平台软件包下载的地址:https://github.com/fatedier/frp/releases

01、处于不同局域网下的Socket通信(配置)_第3张图片

1、在服务器上配置

远程登录到命令行界面,输入自己的账户和密码,然后新建一个文件夹:

mkdir zhuzhu
cd zhuzhu

frp 安装非常容易,只需下载对应系统平台的软件包,并解压就可用。我的服务器是Linux,因此下载的是Linux版本的,同时需要注意的是你的Linux是什么架构的,我的是ARM,64位,因此找到相应版本的frp安装即可

 wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_arm64.tar.gz

然后解压:

tar xzvf frp_0.33.0_linux_arm64.tar.gz

为了方便管理,将解压后的文件重命名:

mv frp_0.33.0_linux_arm64 frp

查看文件内容:

cd frp
ls

frp 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini。我们这里通过简版的 frps.ini配置,快速的搭建起一个 frp服务端。

查看ffrps.ini的配置:

cat frps.ini

#输出
[common]
bind_port = 7000 

由于默认配置中监听的是 7000 端口,但是用户可根据自己实际情况修改,我这里就没有修改了

启动frp服务端:

./frps -c ./frps.ini

#输出(输出大概就是这个样子,我原来的输出找不到了...啦啦啦)
2018/01/25 10:52:45 [I] [service.go:96] frps tcp listen on 0.0.0.0:7000
2018/01/25 10:52:45 [I] [main.go:112] Start frps success
2018/01/25 10:52:45 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues

OK,服务端的frp启动完毕,成功监听7000端口。

2、在客户端配置

如果也是Linux系统的话,那么就是向上面一样配置:下载、启动客户端文件

但是对于Windows用户而言稍有不同(因为我的就是):

打开软件包的下载地址,下载相应的版本并解压:(我的Windows是×86架构的64位)

同样这个文件里面也有想类似的文件:

01、处于不同局域网下的Socket通信(配置)_第4张图片

其中的frpc.ini就是需要配置的frp客户端配置文件

双击打开frpc.ini文件,按照如下配置:

01、处于不同局域网下的Socket通信(配置)_第5张图片

  • server_addr : frp 服务端的公网 IP
  • server_port :frp 服务端监听的端口(这个就是之前在服务器上配置的端口)
  • local_ip:本地客户端的IP地址(私网)
  • local_port:本地将要被访问的端口    22
  • remote_port:远程访问的端口    6000

这个remote_port端口华为云也需要配置安全组,授权

配置安全组:

01、处于不同局域网下的Socket通信(配置)_第6张图片

找到   网络设置  /  更改安全组,打开,点击   新建安全组

01、处于不同局域网下的Socket通信(配置)_第7张图片

01、处于不同局域网下的Socket通信(配置)_第8张图片

01、处于不同局域网下的Socket通信(配置)_第9张图片

01、处于不同局域网下的Socket通信(配置)_第10张图片

选择然后点击确定即可,或者按照这篇教程来添加规则:

阿里云/腾讯云/华为云安全组配置开放端口

然后在Windows的Dos命令行下执行相应exe程序:

在文件夹的目录下,按住Shift键,点击鼠标右键,然后打开Powershell窗口(这个是cmd命令的高级版):

在命令行中输入启动frp配置:

.\frpc.exe

这样就可以成功在 frp 服务端上成功建立一个客户端连接,可以打开服务器,发现会有一些反应。

到这里为止所有的配置就完成了!

 

参考学习的网站:

使用Socket在公网上通信

处于不同局域网下的Socket通信——frp配置

TCP实现在不同局域网下的两台电脑网络通信(Python实现)

一款很好用的内网穿透工具--FRP

 

 

 

你可能感兴趣的:(Socket-python)