华人澳洲中文论坛

热图推荐

    利用frp工具完成内网穿透、随时随地拜候内网办事

    [复制链接]

    2022-11-23 21:49:19 27 0

    前言
    以前分享过一次《ZeroTier完成内网穿透、异地组网》,其根本任务原理是组建一个虚构局域网,各个装备(NAS、Linux、Windows、Mac、iOS、Android)装置了客户端、参加到这个虚构局域网后,就会自动调配一个IP,从而完成局域网内各个装备及办事的互相拜候。
    而明天要引见的内网穿透工具是frp,与ZeroTier不同的是,frp无需在各个终端装备上装置客户端,只需求在拥有公网 IP 的节点上部署 frp 办事端,便可轻松地将内网办事穿透到公网,从而完成随时随地拜候内网办事。
    一、frp简介 1.frp是甚么
    frp 是一个专一于内网穿透的高机能的反向代理当用,反对 TCP、UDP、HTTP、HTTPS 等多种协定。能够将内网办事以平安、便捷的形式经过拥有公网 IP 节点的直达袒露到公网。
    名目地址:http://github.com/fatedier/frp/releases 中文文档:http://gofrp.org/docs/overview/2.为何使用 frp ?经过在拥有公网 IP 的节点上部署 frp 办事端,能够轻松地将内网办事穿透到公网,同时提供诸多专业的功用特性,这包罗:
    客户端办事端通讯反对 TCP、KCP 以及 Websocket 等多种协定。采取 TCP 衔接流式复用,在单个衔接间承载更多申请,节俭衔接建设时间。代理组间的负载平衡。端口复用,多个办事经过同一个办事端端口袒露。多个原生反对的客户端插件(动态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端实现某些任务。高度扩展性的办事端插件零碎,便利结合本身需要进行功用扩展。办事端和客户端 UI 页面。3.根本原理


    根本任务原理如上图所示:
    在带有公网IP的云办事器上部署frp的办事端frps;在需求穿透的内网办事器上部署frp的客户端frpc;每个客户端都会有一个配置文件用于和办事器衔接,不同的内网办事配置不同的端标语,例如内网办事器A上装置了jira办事,其端口是8080,内网办事器B上装置了gitlab办事,其端标语是8081;用户经过拜候公网ip+端标语,公网办事器此时就至关于代理办事器,下面部署的frps办事端会按照端标语,自动转发到对应的内网办事器上,从而拜候到内网办事;二、前置环境筹备办事端和客户端使用的都是同一份文件,只是配置文件和启动文件不同。因此只需求下载一份文件,将其上传到各个办事器便可。
    1.下载解压
    下载地址:
    http://github.com/fatedier/frp/releases



    解压:
    tar -xvf frp_0.44.0_linux_amd64.tar.gz # 解紧缩 mv frp_0.44.0_linux_amd64 frp # 重命名文件夹为frp 2.目录解读



    frpc:客户端可履行顺序frpc_full.ini:客户端一切配置项(能够在此文件查看frp的一切的配置项)frpc.ini:客户端配置项frps:办事端可履行顺序frps_full.ini:办事端一切配置项(能够在此文件查看frp的一切的配置项)frps.ini:办事端配置项LICENSE:许可证三、办事端配置办事端需部署在带有公网ip的办事器上,最佳是云办事器。frp关于云办事器的配置要求不高,相似2C2G的入门级云办事器便可。并且目前各大厂商都在搞流动,入门级云办事器一年才50元摆布。
    1.配置办事端
    为防止误操作,能够删除客户端相干的文件及配置
    rm -fr frpc* # 删除一切客户端相干的文件及配置 cp frpc.ini frpc.ini.bak # 备份原始配置文件
    编纂配置文件:frps.ini
    [co妹妹on] # frp监听的端口,默许是7000,能够改为其余的 bind_port = 7000 # 受权码,请改为更繁杂的,这个token之后在客户端会用到 token = e10adc3949ba59abbe56e057f20f883e # 开启HTTP #vhost_http_port = 8088 # 去除TCP速度限度 tcp_mux = false # frp办理后盾端口,请按本人需要更改 dashboard_port = 7500 # frp办理后盾用户名和明码,请改为本人的 dashboard_user = admin dashboard_pwd = admin十二3456 enable_prometheus = true # frp日志配置 log_file = /home/frp/frp/frps.log log_level = info log_max_days = 3  ./frps -c frps.ini # 启动办事端 2.守旧平安组
    若公网办事器是在阿里云、百度云等云办事器上的,则需求在平安组中为frp守旧指定的端标语,如:7000是frp办事默许端标语、7500是在frps.ini配置文件中指定的dashboard_port、其余的则是需求映照到内网办事器的端口



    3.拜候dashboard
    拜候地址:http://180.xxx.xxx.xxx:7500
    账号明码:admin、admin十二3456(对应配置文件中的dashboard_user与dashboard_pwd)



    4.将frps添加为当地办事(可选)
    也能够将frps添加为当地办事,详细步骤如下:
    ① 办事端新建文件:frps.service
    内容如下:
    [Unit] Description=frps service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/home/frp/frp/frps -c /home/frp/frp/frps.ini [Install] WantedBy=multi-user.target ② 创立配置文件目录并复制文件 mkdir -p /etc/frp cp frps.ini /etc/frp/ cp frps /usr/bin/ cp frps.service /usr/lib/systemd/system/ ③ 配置自并启动客户端办事 systemctl enable frps # 允许自启动 # 履行胜利会提醒“Created symlink /etc/systemd/system/multi-user.target.wants/frps.service → /usr/lib/systemd/system/frps.service.” systemctl start frps # 启动客户端办事
    若更改了frps.service,则需使用“systemctl daemon-reload”命令从新加载配置。



    三、客户端配置 1.配置客户端
    编纂客户端配置文件frpc.ini
    [co妹妹on] server_addr = 180.xxx.xxx.xxx # 办事端所在的公网ip地址 server_port = 7000 # 办事端默许端标语,与办事端配置文件放弃统一 token = e10adc3949ba59abbe56e057f20f883e # 去掉速度限度 tcp_mux = false [jira] type = tcp # 留意:这个中央一概填写tcp local_ip = 192.168.1.2十一 # jira所在内网办事器的ip地址 local_port = 8088 # 当地拜候端标语 remote_port = 8088 # 映照到云办事器的端标语 [gitlab] type = tcp # 留意:这个中央一概填写tcp local_ip = 192.168.1.2十一 # gitlab所在内网办事器的ip地址 local_port = 8081 # 当地拜候端标语 remote_port = 8081 # 映照到云办事器的端标语 2.启动客户端 ./frpc -c frpc.ini # 启动客户端 3.云办事器平安组添加端标语
    平安组中添加remote_port端标语



    4.拜候HTTP办事
    此时则能够经过公网IP+内网端口拜候指定办事,如下图所示,拜候的是内网办事器的jira办事。



    5.查看dashboard衔接记载
    客户端启动胜利,经过代理拜候后,能够看到dashboard的Proxies-TCP中记载了衔接信息:



    6.将frpc办事加为当地办事(可选) ① 客户端新建文件:frpc.service
    内容如下:
    [Unit] Description=frpc service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/home/frp/frpc -c /home/frp/frpc.ini [Install] WantedBy=multi-user.target ② 创立配置文件目录并复制文件 mkdir -p /etc/frp cp frpc.ini /etc/frp/ cp frpc /usr/bin/ cp frpc.service /usr/lib/systemd/system/ ③ 配置自并启动客户端办事 systemctl enable frpc # 允许自启动 # 履行胜利会提醒“Created symlink from /etc/systemd/system/multi-user.target.wants/frpc.service to /usr/lib/systemd/system/frpc.service.” systemctl start frpc # 启动客户端办事
    若更改了frps.service,则需使用“systemctl daemon-reload”命令从新加载配置。



    四、常见问题及解决 1.客户端配置http转发启动办事报错
    若在客户端配置文件中配置了http转发,启动客户端办事时产生如下报错:



    【缘故】:办事端配置文件frps.ini中未配置vhost_http_port
    【解决方法】:
    ① 办事端配置文件frps.ini的[co妹妹on]中添加vhost_http_port
    [co妹妹on] # frp监听的端口,默许是7000,能够改为其余的 bind_port = 7000 # 受权码,请改为更繁杂的,这个token之后在客户端会用到 token = e10adc3949ba59abbe56e057f20f883e # 开启HTTP vhost_http_port = 8088
    ② 客户端配置文件frpc.ini中添加custom_domains
    [web] type = http local_ip = 192.168.1.2十一 # 内网本机ip local_port = 8088 # 当地办事端标语 remote_port = 8088 # 映照到的公网办事器端标语 custom_domains = 办事端所在的公网ip
    ③ 配置后从新启动客户端办事
    ./frpc -c frpc.ini
    留意事项:
    1、若要间接在客户端配置文件中配置http代理,则办事端配置文件frps.ini中必需配置vhost_http_port;
    2、若在客户端配置文件中配置http代理:type = http,则必需在底部带上custom_domains=xxx.xxx.xx.xx;
    2.配置代理多HTTP
    上述问题1的配置办法,似乎只能代理拜候一个端口的http,即便客户端配置文件frpc.ini中指定了多个type=http的 [web] 项,但由于办事端配置文件frps.ini中只能指定一个vhost_http_port=xxx,所以此办法终究仍是只能代理拜候一个http的办事,即vhost_http_port端标语对应的阿谁http。
    【解决办法】:
    参考:
    办事端配置文件frps.ini中不需求配置vhost_http_port,间接在客户端配置文件frpc.ini中配置多个 [web] 项,即要代理的HTTP便可,其中type=tcp,也不必指定custom_domains。配置示例如下:
    [co妹妹on] server_addr = 180.xx.xx.xx server_port = 7000 token = e10adc3949ba59abbe56e057f20f883e # 去掉速度限度 tcp_mux = false [jira] type = tcp local_ip = 192.168.1.2十一 local_port = 8088 remote_port = 8088 [gitlab] type = tcp local_ip = 192.168.1.2十一 local_port = 8081 remote_port = 8081 小结
    以上就是利用frp完成内网穿透的全进程,比拟于以前引见过的zerotier,frp无需在各个拜候端上装置客户端,只需在公网办事器上装置办事端,在需求被代理转发的内网办事器上装置客户端,并配置好各个办事的端标语,其余一切用户便可在手机、PC、平板上随时随地拜候内网办事。
    此外,网络平安一样需求关注。因为内网穿透办事带有一定危险,因此无论是公网办事器仍是内网办事器,最佳都开启防火墙,用到哪一个端口再放开哪一个端口,办事器的明码最佳也设置得繁杂一些。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题37

    帖子45

    积分217

    图文推荐