ubuntu 下的 frp 内网穿透
关键词:ubuntu
, frp
, 内网穿透
ubuntu 下 frp 内网穿透
如果你在你自己的电脑开启了一个内网服务, 但是又想他可以在外网访问, 这个时候你就需要一个内网穿透工具了, 我一般用 frp 来处理.
frp 是一个 C/S
架构的应用, 需要在外网机器上安装 server 端,内网机器上安装 client 端。
服务端安装
在此地址下载需要平台的二进制文件,比如 ubuntu 环境下, 下载如下图所示的文件即可:
将文件放到选定的目录下边,我一般选择 /opt
目录,并将执行的命令软链接到 /usr/local/bin
下。
具体的操作如下:
|
|
下面的 frps.ini 配置文件, 注意把注释要删掉
|
|
防火墙放行端口, 如果是云服务,还要记得在 console
里把端口开放了。
|
|
客户端安装
服务端安装成功后,客户端的安装也是一样的,不同的就是使用的是 frpc,配置文件使用的是 frpc.ini.
当然这个我说的是 linux 环境下,如果是 mac 或者 windows 那么情况就就要自己掌握了,这里我介绍的仅仅是在 linux 下的,具体的配置文件如下:
|
|
特别的讲一下 web 配置的处理,因为我们在 server 上已经配置了 vhost_http_port 是 10080,所以这个时候其实只需要访问 10080 端口即可拿到服务。同时需要在内网服务器内 8080 端口开启一个服务:
|
|
这个时候,我们直接访问 yeyuqiudeng.com:10080
即可访问到这个 python 服务,如果有不明白不清楚的,请查看这里.
配置文件的注意事项:
注意:
- 一个服务端可以同时给多个客户端使用
- [ssh] 这样的名称必须全局唯一,即就算有多个客户端,也只能使用一次,其他的可以用 [ssh2] 、[ssh3] 等;
- 除了 type 为 http/https,端口只能被一个服务使用
- 如果用的 nat vps,remote_port 请改成映射后的端口
客户端配置好后,需要开放服务端的如下端口, 同时在云服务的 console 上也把这些端口开放:
|
|
当客户端和服务端服务都启动之后,查看 dashboard ,就可以看到服务的连接情况:
ssh 登陆服务器
首先确保机器上安装了 ssh server, 并且服务启动了,具体看这里
通过 SSH 访问内网机器,假设内网机器用户名为 fupeng, 而外网的服务器地址是 a.b.c.d
ssh -oPort=2222 [email protected]
然后输入密码即可,如果没有密码,或者使用了密钥,配置好密钥的地址也可以直接访问。
例子:
按照我上面的配置,我要是向访问我自己的机器
- 确保 openssh-server 安装并启动了;
- 这台机器上找一个用户,记住他的名字 fupeng 和密码 passwd;
- 确认安装 frps 的机器的地址是 address;
- ssh -oPort=2222 fupeng@address 然后输入密码 passwd 即可登陆服务器了。
这里的 2222 就是 frpc 里配置好的端口,同时在远程服务器可把这个端口开放了, fupeng 是内网机器的一个用户名, address 是远程机器的公网地址, passwd 是用户 fupeng 的开机登陆密码。
访问 web 服务
我把目前所有的跟 web 服务有关的配置捋一遍即可: https://gofrp.org/docs/examples/vhost-http/
首先是在 frps.ini 里配置的 vhost_http_port 为 10080, 这个是设置监听 HTTP 请求端口为 10080
修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 Web 服务监听的端口, 绑定自定义域名为 custom_domains。
此时,访问 custom_domains:10080 即可访问到 local_port 端口的服务。
参考:
- 原文作者:李二花
- 原文链接:http://blog.lierhua.top/post/5.-ubuntu-%E4%B8%8B-frp-%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。