使用frp进行内网穿透,将本地计算机端口映射到公网!
前言:最近要上信息检索课(其实就是Python入门),老师要求自带笔记本使用 Jupyter Notebook
来进行代码练习。想到这游戏本又大又重续航差,所以我决定使用 内网穿透
的技术,将运行在本机的服务端口映射到公网上,然后在课上使用 iPad+妙控键盘 就能轻松完成代码编写!(为啥不直接把 Jupyter Notebook
装在服务器上?因为懒!)
一. 介绍
使用内网穿透,能干啥?
举个例子,我写了个SpringBoot应用并运行在了8080端口上,此时我可以在本机通过 localhost:8080 端口访问。那么我想在其他电脑上访问呢?只要把这个8080端口映射到公网上,我们就可以通过公网IP+端口号的形式在任意一台联网的计算机访问了。
专业解释可以百度 / Google 一下。
二. 准备
我们将会使用 frp
作为内网穿透的工具,首先你得具备:本地计算机 + 云服务器。
frp工具地址:https://github.com/fatedier/frp/releases
在本地计算机和云服务器上下载好frp工具,注意版本号要一致!
Github点击下载:
或者使用命令下载:
1 | 以CentOS为例 |
下载好后解压,进入文件夹
三. 配置信息
在选择公网映射端口前,请先看以下内容:
Google Chrome 默认非安全端口列表,默认无法通过游览器正常访问,注意避免以下端口:
1 | 1, // tcpmux |
下面我将以映射本地http的8888端口到公网IP的6001端口为例,至于其他协议及映射配置可以举一反三。
服务端配置
frps 开头的文件是给服务端用的,配置文件名 frps.ini
,可以使用vim编辑器添加以下内容:
1 | bind_port = 7000 # frp服务端运行端口(服务端端口) |
保存好这个配置文件后,后台运行frp
1 | nohup ./frps -c ./frps.ini & |
客户端配置
frpc 开头的文件是给客户端用的,配置文件名 frpc.ini
,内容如下:
1 | [common] |
保存好这个配置后,运行frp
1 | ./frpc -c frpc.ini |
这样就大功告成了!
通过游览器访问服务端的7500端口可以看到以下界面:
看到 online 状态后,我们可以通过 http
从公网IP的 6001端口
访问到本地计算机的 8888端口
。
【附加】
如果要使用 Jupyter Notebook
,具体可以百度 “Jupyter Notebook如何允许远程访问”,其实就是在 jupyter_notebook_config.py
配置文件最后加上以下内容:
1 | c.NotebookApp.allow_remote_access = True |
最后再设置下 Jupyter Notebook
的登录密码即可。