frp – 内网穿透神器,ssh 连接内网电脑与微信开发本地调试

你开发微信公众号时是怎么调试的呢?idea 远程调试?打印 log 调试?你公司电脑你是怎么远程的呢?teamviewer?你知道吗,你可以通过 frp 连接内网电脑,暴露内网服务,简直不要太爽。

frp 是我所见过 的 内网穿透解决方案里 我最喜欢的一个,功能足够强大,可以 穿透 ssh 和 web,并支持 kcp 协议。在 github 拥有将近 30K star,足见其实力吧。下面回归主题,使用 frp 穿透 ssh 和 web 服务。

frpc.ini 配置

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
protocol = kcp

如上,是 frp 客户端的基础配置,如果要配置 ssh 或者 web 服务,你继续追加即可。

frp 实现 ssh 穿透

frpc.ini 配置如下:

frp – 内网穿透神器,ssh 连接内网电脑与微信开发本地调试插图

纯文本内容为:

[common]

server_addr = xxx.xxx.xxx.xxx

server_port = 7000

protocol = kcp

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000

这里的 ssh 可以换作别的名称,不影响使用,但是不能重复哦,重复注册不成功。

frps.ini 配置如下:

[common]
kcp_bind_port = 7000
vhost_http_port = 8080
subdomain_host = kpromise.top

这里,subdomain_host 指你的主域名,7000 是 frp 主程序的监听地址,需要跟上文中 server_port 对应。8080 是 http 的监听端口。

frp 穿透内网 web 服务

frpc.ini 配置如下:

frp – 内网穿透神器,ssh 连接内网电脑与微信开发本地调试插图1

纯文本内容为:

[common]

server_addr = xxx.xxx.xxx.xxx

server_port = 7000

protocol = kcp

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000

[customerdev]

type = http

local_port = 8182

subdomain = customerdev

frps.ini 配置如上,这里不再赘述。之后你可以 frps -c frps.ini 以及 frpc -c frpc.ini 来启动客户端和服务端,启动后,你就可以通过 customerdev.kpromise.top:8080 来 访问内网服务了。如果你不想要 域名后面的 8080,那就只能通过 nginx 转发了,即 你请求 customerdev.kpromise.top 时,nginx 将流量转发到 本地的 8080 端口,配置如下:

frp – 内网穿透神器,ssh 连接内网电脑与微信开发本地调试插图2

纯文本内容为:

server {

listen 80;

server_name customerdev.kpromise.top;

server_tokens off;

return 301 https://$host$request_uri;

}

server {

listen 443 ssl;

server_name customerdev.kpromise.top;

charset uft-8;

location / {

proxy_pass http://localhost:8080;

gzip off;

proxy_redirect off;

proxy_http_version 1.1;

proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

ssl_certificate /etc/letsencrypt/live/kpromise.top/fullchain.pem; # managed by Certbot

ssl_certificate_key /etc/letsencrypt/live/kpromise.top/privkey.pem; # managed by Certbot

}

这样子,你还直接给 加了 https 呢,何乐而不为!记住一点 [customerdev] 这里 customerdev 是服务名称,你随便写,但是不能重复。而 common 部分你就不要改了,反正我没改!可以多个 client 连接 同一个 server,除了 common 外,其余 服务名称不得重复。另外,还支持 流量压缩与加密,以及客户端服务端鉴权。鉴权呢,服务端和客户端的 common 配置中的 token 参数一致则身份验证通过。压缩与加密需要在 client 端指定,且只能在服务配置下,比如:

[ssh]
type = tcp
local_port = 22
remote_port = 6000
use_encryption = true
use_compression = true

压缩后可有效加快传输速度。

原文链接:https://www.163.com/dy/article/F4P3R5VV0532BCFG.html

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享