有时候我们需要让内网的服务器允许访问,但是自己内网家庭常用带宽,我发直接访问IP,所以我们只能进行内网穿透,使用花生壳等软件是付费的,所以我们选择了frp
作为内网穿透工具,配置如下,你需要的东西有:
- 公网服务器,具有外网IP(如阿里云,腾讯云等服务器)
- 内网服务器,能联网即可。
分别下载frp
到公网服务器和内网服务器:
然后解压并进入服务器,
进入公网IP服务器中修改目录中的frps.ini
配置文件, 将bind_port
改为随意可用端口
在内网IP服务器中修改frpc.ini
配置文件:
其中解释如下:
- common表示基本配置
- server_addr:公网服务器地址
- server_port:公网bind_port配置的端口
- ssh表示使用ssh登录内网服务器
- type:tcp即可
- local_ip:本地iP,127.0.0.1即可
- local_port: ssh端口
- remote_port:ssh链接端口
为了方便调试,我们先启动桌面版:
生产使用中可使用如下命令在后台运行:
公网服务器启动成功后,在内网服务器中启动frpc
,为了方便调试,我们一样启动桌面版:
生产使用中可使用如下命令在后台运行:
如果配置成功,在进入本地服务器就相对容易了,与以前的ssh
一样:
也可以使用
此问题一般情况是公网IP没有开放bind_port
设置的7000
端口,此时可以检查防火墙是否允许以及查看服务器安全规则,如阿里云需要设置安全组规则允许访问。
ssh无法使用内网账号密码登录,只能使用公网密码登录;一登录直接跳转到外网服务器,没有实现穿透效果,此时需要设置内网服务器
的frpc.ini
文件,修改local_ip = 127.0.0.1
。
此问题的原因是公网未开放ssh
配置的端口,开放一下即可,如我的是阿里云,ssh
端口为6000
,我去阿里云安全组规则允许访问6000端口才搞定。
更多信息:
安全地暴露内网服务
对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
使用 stcp(secret tcp) 类型的代理可以避免让任何人都能访问到要穿透的服务,但是访问者也需要运行另外一个 frpc。
以下示例将会创建一个只有自己能访问到的 ssh 服务代理。
frps 的部署步骤同上。
如果出现问题:
将本地地址改为127.0.0.2
或者其他地址
设置bat文件,这样就不需要每次都定位到指定目录:
原文链接:https://www.cnblogs.com/xlchan/p/13643231.html