frp 实现内网穿透(以网页形式访问)

内网穿透:使得局域网中的电脑暴露到公网当做,从未使得他人可以访问你的电脑中的文件。(口语化)

内网穿透条件(自建)

  1. 本机
  2. 公网ip:例如一台vps服务器,这里假设为111.168.111.1

服务端

  1. 下载frp
    frp下载地址

我的服务器是Centos系统,选择的是linux的包


  1. 解压


    frp文件
  2. 配置frps.ini文件,frps.ini文件是在服务端运行的。这里监听的端口号设8000(随意,不与nginx 矛盾就行)
[common]
bind_port = 7000      // frps绑定端口,默认7000
vhost_http_port = 8000 // frps 的监听端口号
  1. 运行frp
nohup ./frps -c frps.ini &
  1. 查看运行信息 ,看是否运行成功
tail -f nohup.out

客户端 -- 本机

  1. 下载,我的是mac,下载第一个包
    下载地址
  1. 解压,并配置frpc.ini, frpc.ini是在客户端运行的。
// frpc.ini 配置
[common]
server_addr = 111.168.111.1  // 你的公网ip地址
server_port = 7000  // 与服务器监听端口一致

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

[web]
type = http
local_port = 9000      // 本地运行端口
custom_domains = 你的域名名称(需要设置解析路径,后面会提到)

3,运行

./frpc -c frpc.ini
  1. 在本地9000端口上运行你的服务器,通过localhost:9000查看是否运行成功
  2. 访问 公网ip 加监听的端口号,如 111.168.111.1:8000,即可访问4步中相同的网站了

域名解析 + nginx 配置

  1. 如果你有自己的域名,可以添加域名解析,如www.silence.com 指向你的公网ip 111.168.111.1
  2. 这时访问时域名需加上8000的端口号才能访问,需要在nginx 上配置一下去除这个端口号
server {
        listen 80;
        server_name www.silence.com; // 你的域名

        location / {
                proxy_pass http://localhost:8000;  // 你配置的8000端口
                proxy_set_header    Host            $host:80;  // 默认的80端口
                 proxy_set_header    X-Real-IP       $remote_addr;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
                 proxy_hide_header   X-Powered-By;
        }
}

这时就可以通过 www.silence.com直接访问你的电脑中的localhost:9000里的文件了。

最后,可以看看这里,还可以实现很多其他的功能。。。

参考:
https://github.com/fatedier/frp/blob/master/README_zh.md#%E7%AB%AF%E5%8F%A3%E5%A4%8D%E7%94%A8

https://www.youtube.com/watch?v=VKSKZ0-3oT8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容