乐趣区

关于内网穿透:三分钟让闲置电脑变云主机

演示如何利用内网穿透工具 FRP,实现域名拜访内网 Web 服务; 外网 SSH 拜访内网主机; 图文形容 FRP 基本原理。

成果

前提条件

  • 有固定公网 IP 地址的主机(下文命名为 public)
  • 可拜访公网的内网主机(下文命名为 internal)

下载安装

在 public 主机和 internal 主机上别离下载对应零碎的 frp 程序压缩包。作者的公网主机和内网主机均为 CentOS 零碎,因而在两台主机上均执行如下命令进行下载安装。(其余零碎的安装包能够通过 Github 搜寻 frp 仓库的发布页面进行下载)

wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
tar -zxf frp_0.37.0_linux_amd64.tar.gz -C $HOME
# 倡议批改解压后的文件夹名称
mv $HOME/frp_0.37.0_linux_amd64 $HOME/frp
# 建设软连贯不便后续调用执行
ln -s $HOME/frp/frpc /usr/local/bin/frpc
ln -s $HOME/frp/frpc /usr/local/bin/frpc

拜访内网 Web 服务

想要通过浏览器以 http:// 公网 ip:8000 的形式,拜访内网主机_80 端口_上的 Web 服务,仅须要:

  • 在 public 主机上批改配置文件 frps.ini 为:
[common]
bind_port = 7000
vhost_http_port = 8000

  • 在 internal 主机上批改配置文件 frpc.ini 为:
[common]
server_addr = x.x.x.x
server_port = 7000
[web]
type = http
local_port = 80
custom_domains = your_domain

别离在内网主机启动 frpc 客户端程序,公网主机启动 frps 服务端程序:

# internal 主机上
frpc -c ./frpc.ini
# public 主机上
frps -c ./frps.ini

(留神配置文件中的端口须要保障可拜访,其中 x.x.x.x 为你的公网主机 IP 地址)

此时即可通过 _http:// 公网 ip:8000_ 拜访你部署在内网中的 Web 服务了。

SSH 拜访内网

在 public 主机上批改 frps.ini 文件,仅需设置 frp 服务器用户接管客户端连贯的端口:

[common]
bind_port = 7000

在须要被拜访的 internal 主机上批改 frpc.ini 文件,假如 frps 所在服务器的公网 IP 为 x.x.x.x:

[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

(SSH 服务通常监听在 22 端口)

local\_ip:内网主机须要裸露到公网的服务地址

local\_port:内网主机须要裸露到公网的配置端口

remote\_port:frp 服务端监听的端口

(拜访 remote\_port 端口的流量将会被转发到本地服务对应的端口)

别离在内网主机上启动 frp 客户端程序,公网主机上启动 frps 服务端程序:

# internal 主机上
frpc -c ./frpc.ini
# public 主机上
frps -c ./frps.ini

此时即可通过 SSH 拜访内网机器,假如用户名为 test:

ssh -oPort=6000 test@x.x.x.x

(frp 会将申请 x.x.x.x:6000 的流量转发到内网机器的 22 端口)

FRP 基本原理

几点劣势

  • 在可通过内网穿透技术施展闲置电脑的余热,简略部署即可轻松取得公网可拜访的 Web 服务( 不倡议在生产环境中这么做
  • 没有 VPN 一样可能拜访内网,且部署老本更低

退出移动版