内网穿透配置(FRP)

这篇具有很好参考价值的文章主要介绍了内网穿透配置(FRP)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

0、内网穿透的一般场景

1、内网穿透配置

a、frp软件下载

b、frp 的配置

3、通过 frp 实现远程连接

4、设置 frpc / frps 开机启动的方法

5、设置frp安全连接的方法


0、内网穿透的一般场景

放假回家怎么远程连接学校实验室的服务器?

先分析一波:首先家里的电脑与学校服务器主机分属不同的局域网内网)中,也就是说家里网络设备上层的公网IP不同于学校服务器上层的公网IP,因此这种情况下就不能仅仅使用 SSH 来远程连接学校的服务器了,还需要借助一种叫做内网穿透的技术实现连接。如下面这幅图。

内网穿透配置(FRP)

公网的IP是独一无二的,而局域网IP在从属不同公网的前提下可以是一样的,

内网穿透需要第三台电脑作为中转站,这个中转站需要有一个公网IP,一般来说可以用云服务器(一般都有公网IP)来作为中转站,可以租用阿里云腾讯云华为云这些平台中的云服务器。

1、内网穿透配置

使用的系统:云服务器(中转站)和实验室服务器(需要向公网暴露IP的本地主机)都是Ubuntu,个人电脑是Windows10.

a、frp软件下载

这里使用的内网穿透的工具是 FRP,GitHub地址:https://github.com/fatedier/frp。下载压缩包解压之后会看到下面的内容。这里以Windows版的为例,frp 含有 frps 和 frpc 两种配置文件,frps 是内网穿透服务端service(也就是中转站)的配置文件,作为内网穿透的桥梁。frpc 是内网穿透中需要向公网暴露IP的本地主机(也就是示例场景中的实验室服务器)。

内网穿透配置(FRP)

b、frp 的配置

云服务器(后面称做A)作为内网穿透的桥梁,是内网穿透的服务端,需要使用 frps。实验室服务器(后面称做B)属于内网穿透中的服务端client,需要使用 frpc。可以通过分别修改 frps.ini 和 frpc.ini 来配置服务端和客户端。

中需要配置 frps.ini,这个文件原始内容如下:

[common]
bind_port = 7000

保持默认参数即可。如果想配置其他内容,可以查看 frps_full.ini 文件的内容,里面有全部的配置语句。bind_port 表示将 B 与 A 的 7000 端口绑定,具体的端口号可以自定义修改。如果想配置其他内容,可以查看frps_full.ini文件的内容,里面有全部的配置语句。例如可以加一行 token=xxxx,类似于密钥,需两边都一样才能访问:

[common]
bind_port = 7000
# 可以加一行 token=xxxx,类似于密码,需两边都对上才能访问,此时客户端也需要有同样的设置
token=12345

主机 需要配置 frpc.ini,这个文件原始内容如下:

[common]
# server_addr需要改成公网IP地址
server_addr = x.x.x.x
server_port = 7000
# 如前所述,可以加一行 token=xxxx,类似于密匙-密钥对,需两边都一样才能访问
token=12345
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 这个端口可以自由设置,设置完后在云服务器中开启相应的端口即可
remote_port = 6000

server_addr 参数修改为公网IP,server_port 用于frps与frpc之间交换数据的端口,local_port 是ssh服务端口,remote_port 是在frp服务器上公开的供外部设备连接的端口,6000 与 7000 端口的作用可以参照博客开头的那张图。接下来需要在云服务器的端口管理中添加相应的端口 6000 和 7000 并开放即可。比如我用的阿里云服务器,是在“服务器安全设置”选项中添加端口的:

内网穿透配置(FRP)

3、通过 frp 实现远程连接

在上述配置都修改完成后,,在云服务器 A 上执行以下指令运行frps端:

./frps -c ./frps.ini

在本地服务器 B 上执行以下指令运行 frpc 端:

./frpc -c ./frpc.ini

然后本地主机就可以使用内网穿透来远程访问本地服务器了,在本地主机上执行以下指令:

ssh  [username]@[ip]  -p  [port_num]
  • 其中:
  • username 是 B 中的用户名,后面需要输入的密码也是该账户的密码。
  • ip 是 A 的公网 ip 地址。这里注意!是 A 的公网 ip 地址,不是 B 的!
  • port_num 是 frpc.ini 中设置的 remote_port 。

例如,要连接 实验室服务器(B)中的名为 abc 的用户,中转账云服务器的公网ip为123.0.0.3,remote_port 设置为 6000,则指令如下:

ssh  abc@123.0.0.3  -p  6000

同样也可以借助 VSCode 中的 Remote-SSH 插件,方便远程连接后的文件管理,方法可以看这篇博客 :SSH远程连接实例_地球被支点撬走啦的博客-CSDN博客_ssh连接实例

4、设置 frpc / frps 开机启动的方法

如果想让远程服务器 B 与本地服务器 A 开机自动启动 frps 和 frpc 这两个服务,就需要用到 systemd 文件夹中的文件了。内容如下:

内网穿透配置(FRP)

Linux 系统下的开机启动需要使用 frps.service frpc.service 这两个文件,将这两个文件分别拷贝到对应机器的 /lib/systemd/system 文件夹下。需要修改其中的 User 字段,改为当前主机用户的用户名,还需要修改 ExecStart 字段,把其中的 frps/frps 的路径改成你实际 frpc/frpc 所在的绝对路径。

在云服务器主机 A 中修改如下:

这里运行 frps 的云服务器的用户名为 admin,frps 的路径为 /home/admin/frp/frps,因此将原始的

frps.service 中的:
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

改为:

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=admin
Restart=on-failure
RestartSec=5s
ExecStart=/home/admin/frp/frps -c /home/admin/frp/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

 然后运行 frpc 的本地服务器 B 中也是类似的设置:

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

# 改为:====================================================

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=ocean
Restart=on-failure
RestartSec=5s
ExecStart=/home/pathto/frp/frpc -c /home/pathto/frp/frpc.ini
ExecReload=/home/pathto/frp/frpc reload -c /home/pathto/frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

然后在 B 中依次执行以下四条指令启动 service 服务,实现开机启动:

systemctl daemon-reload     # 重新加载
systemctl enable frpc.service  # 使能开机启动
systemctl start frpc.service    # 开启服务
systemctl status frpc.service   # 查看服务状态 

如果开启成功,则会显示如下界面 Activate 会显示绿色的 running

内网穿透配置(FRP)

云服务器 A 中的开机启动方式也是类似的,就不再赘述了。

5、设置frp安全连接的方法

如果直接将服务器暴露到公网上可能会有安全隐患,如果别人知道了公网中转站的 ip 和转接端口,就相当于知道了内网服务器的 ssh 端口,如果知道密码的话就可以随意登陆了。因此,登陆密码可以复杂一些以保证安全。另外一点,可以使用安全ssh登录,这个是官网的方法GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. - GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.https://github.com/fatedier/frp#expose-your-service-privately

frp 服务端主机 A 的 frps.ini 不需要修改,这要修改 frp 客户端主机 B 的 frpc.ini 的配置,这里移除了 remote_port 的设置。

[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345
[secret_ssh] 
# secret tcp
type = stcp
# security key,只有 sk 一致的用户才能访问到此服务
sk = abcdefg
# 向外部暴露的本地SSH服务端口
local_ip = 127.0.0.1
local_port = 22 

另外,需要远程连接内网服务器的个人PC也需要运行 frpc,此时 frpc.ini 的配置为:

[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345
[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh
# secret key,必须与目标主机的 frpc.ini 中的 sk 一样
sk = abcdefg
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1
bind_port = 6000

使用安全连接的情况下,在远程连接时,需要先在个人电脑上(这里是Windows)运行以下命令:

frpc.exe -c frpc.ini

然后再执行ssh命令实现远程连接文章来源地址https://www.toymoban.com/news/detail-496068.html

ssh [username]@127.0.0.1 -p [port_num]

到了这里,关于内网穿透配置(FRP)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • frp内网穿透开启Dashboard互联网https访问toml配置

    本文提供一份详尽的指南,介绍如何配置FRP内网穿透服务,通过toml配置文件开启Dashboard的互联网HTTPS访问。

    2024年04月15日
    浏览(43)
  • 内网穿透!如何配置frp新版0.56.0的配置文件.toml:提供web、samba、ssh远程连接示例

    最新版本的frp在配置上与之前有很大不同,需要使用.toml文件进行配置。其中主要问题出现在toml文件内部。因此,本文将专门讨论这个问题。 下载并解压(以debian系统为例): 注意版本:服务系统版本(linux、windows)、硬件CPU版本(arm、amd等)对应的不是相同的文件。 配置

    2024年04月09日
    浏览(39)
  • frp内网穿透保姆级配置流程,让客户端电脑可以通过域名或者IP访问本地程序接口

    下载地址:https://github.com/fatedier/frp/releases 1、server_addr中的IP是个人云服器的IP 2、custom_domains是可以使用域名访问 3、adtech.test.link.???.com的域名解析ip是124.221.248.68,这样配置后相当于,adtech.test.link.???.com访问443端口或者8081端口时,就会被转发到客户端 4、frpc.ini是客户端配置文

    2024年02月07日
    浏览(48)
  • 内网穿透-Frp(1)使用樱花Frp(Sakura Frp)进行免费的内网穿透操作步骤

    背景介绍:因需要在4G路由器(openwrt,mips架构)上提高页面和视频流展示,需要在公网能访问的,问题:4G卡不能固定IP,所以没办法使用公网+端口映射方式进行;故采取内网穿透frp方式进行公网访问,frp需要跳板机(server端);樱花支持mips架构;经测试成功;故记录供学习参考

    2024年02月05日
    浏览(45)
  • frp内网穿透搭建

    为什么需要内网穿透功能? 从公网中访问自己的私有设备向来都是一件难事。自己的台式机、NAS等等设备,它们可能处于路由器后,或者运营商因为IP地址短缺不给你分配公网IP地址。果我们想直接访问这些设备(远程桌面、远程文件、SSH等等),一般来说要通过一些转发或

    2024年02月03日
    浏览(46)
  • frp内网穿透

     1.首先frp分客户端和服务端,frp客户端和服务端在同一个局域网。  2.frp服务端拥有公网ip与互联网连通。 frp的作用:      通过一台公司拥有外网ip的服务器做为frp服务端,通过请求转发的形式,转发到公司局域网内的服务器(frp客户端),达到实现通过互联网访问局域网

    2024年02月09日
    浏览(44)
  • 使用 frp 内网穿透

    使用 frp 内网穿透是一种常见的实现本地服务暴露到公网的方式。要实现frp内网穿透,您可以按照以下步骤进行操作: 首先需要下载并安装 frp 客户端,可以从 frp 官方网站下载相应的客户端,根据您的操作系统选择合适的版本:https://github.com/fatedier/frp/releases。 在 frp 客户端

    2024年02月08日
    浏览(40)
  • FRP实现内网穿透

    使用旧笔记本电脑安装Centos当作服务器使用,配置了网络后Centos可以访问外网了。当我想要在其他网络环境下连接我家里的服务器,怎么办呢,因为没有公网IP所以只能通过连接内网IP访问使用。如果在其他网络环境下显然是无法连接家里的内网IP的,以下提供2种解决方案:

    2024年02月19日
    浏览(48)
  • frp内网穿透服务使用

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 有了内网穿透你能干什么? 远程访问内网的 http/https 服务 远程桌面(Windows/Mac) 远程文件、 SSH 小程序开发

    2024年02月01日
    浏览(41)
  • FRP + 腾讯云 内网穿透

    1.具有公网ip的腾讯云服务器 2.内网服务器 1.下载frp 选择合适的版本下载(公网端与内网端版本应一致) 2.编辑frps.ini 3.打开防火墙端口 注:对于百度智能云轻量级服务器,其后端界面并没有防火墙设置端口,需要在服务器中自行放行端口:参照 腾讯云服务器可以在后端界面

    2023年04月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包