我的世界服务器frp端口端口映射射用frp

秒后自动跳转至回答所在的问题页&& 免费的内网穿透,内网端口映射工具,无需设置路由器,公网IP,不限流量,不限连接数
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
frp 的作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
frp 仍然处于前期开发阶段,未经充分测试与验证,不推荐用于生产环境。
master 分支用于发布稳定版本,dev 分支用于开发,您可以尝试下载最新的 release 版本进行测试。
目前的交互协议可能随时改变,不保证向后兼容,升级新版本时需要注意公告说明同时升级服务端和客户端。
根据对应的操作系统及架构,从
页面下载最新版本的程序。
将 frps 及 frps.ini 放到具有公网 IP 的机器上。
将 frpc 及 frpc.ini 放到处于内网环境的机器上。
通过 ssh 访问公司内网机器
修改 frps.ini 文件,这里使用了最简化的配置:
# frps.ini
bind_port = 7000
启动 frps:
./frps -c ./frps.ini
修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
启动 frpc:
./frpc -c ./frpc.ini
通过 ssh 访问内网机器,假设用户名为 test:
ssh -oPort=6000 test@x.x.x.x
通过自定义域名访问部署于内网的 web 服务
有时想要让其他人通过域名访问或者测试我们在本地搭建的 web 服务,但是由于本地机器没有公网 IP,无法将域名解析到本地的机器,通过 frp 就可以实现这一功能,以下示例为 http 服务,https 服务配置方法相同, vhost_http_port 替换为 vhost_https_port, type 设置为 https 即可。
修改 frps.ini 文件,设置 http 访问端口为 8080:
# frps.ini
bind_port = 7000
vhost_http_port = 8080
启动 frps;
./frps -c ./frps.ini
修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 web 服务对应的端口, 绑定自定义域名 www.yourdomain.com:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
type = http
local_port = 80
custom_domains = www.yourdomain.com
启动 frpc:
./frpc -c ./frpc.ini
将 www.yourdomain.com 的域名 A 记录解析到 IP x.x.x.x,如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。
通过浏览器访问 http://www.yourdomain.com:8080 即可访问到处于内网机器上的 web 服务。
转发 DNS 查询请求
DNS 查询请求通常使用 UDP 协议,frp 支持对内网 UDP 服务的穿透,配置方式和 TCP 基本一致。
修改 frps.ini 文件:
# frps.ini
bind_port = 7000
启动 frps:
./frps -c ./frps.ini
修改 frpc.ini 文件,设置 frps 所在服务器的 IP 为 x.x.x.x,转发到 Google 的 DNS 查询服务器 8.8.8.8 的 udp 53 端口:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000
启动 frpc:
./frpc -c ./frpc.ini
通过 dig 测试 UDP 包转发是否成功,预期会返回 www.google.com 域名的解析结果:
dig @x.x.x.x -p 6000 www.goolge.com
转发 Unix域套接字
通过 tcp 端口访问内网的 unix域套接字(和 docker daemon 通信)。
frps 的部署步骤同上。
启动 frpc,启用 unix_domain_socket 插件,配置如下:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
[unix_domain_socket]
type = tcp
remote_port = 6000
plugin = unix_domain_socket
plugin_unix_path = /var/run/docker.sock
通过 curl 命令查看 docker 版本信息
curl http://x.x.x.x:6000/version
安全地暴露内网服务
对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
使用 stcp(secret tcp) 类型的代理可以避免让任何人都能访问到要穿透的服务,但是访问者也需要运行另外一个 frpc。
以下示例将会创建一个只有自己能访问到的 ssh 服务代理。
frps 的部署步骤同上。
启动 frpc,转发内网的 ssh 服务,配置如下,不需要指定远程端口:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
[secret_ssh]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
在要访问这个服务的机器上启动另外一个 frpc,配置如下:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
[secret_ssh_vistor]
type = stcp
# stcp 的访问者
role = vistor
# 要访问的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 绑定本地端口用于访问 ssh 服务
bind_addr = 127.0.0.1
bind_port = 6000
通过 ssh 访问内网机器,假设用户名为 test:
ssh -oPort=6000 test@127.0.0.1
通过 frpc 所在机器访问外网
frpc 内置了 http proxy 和 socks5 插件,可以使其他机器通过 frpc 的网络访问互联网。
frps 的部署步骤同上。
启动 frpc,启用 http_proxy 或 socks5 插件(plugin 换为 socks5 即可), 配置如下:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
浏览器设置 http 或 socks5 代理地址为 x.x.x.x:6000,通过 frpc 机器的网络访问互联网。
由于 frp 目前支持的功能和配置项较多,未在文档中列出的功能可以从完整的示例配置文件中发现。
通过浏览器查看 frp 的状态以及代理统计信息展示。
需要在 frps.ini 中指定 dashboard 服务使用的端口,即可开启此功能:
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
打开浏览器通过 http://[server_addr]:7500 访问 dashboard 界面,用户名密码默认为 admin。
从 v0.10.0 版本开始,所有 proxy 配置全部放在客户端(也就是之前版本的特权模式),服务端和客户端的 common 配置中的 privilege_token 参数一致则身份验证通过。
需要注意的是 frpc 所在机器和 frps 所在机器的时间相差不能超过 15 分钟,因为时间戳会被用于加密验证中,防止报文被劫持后被其他人利用。
这个超时时间可以在配置文件中通过 authentication_timeout 这个参数来修改,单位为秒,默认值为 900,即 15 分钟。如果修改为 0,则 frps 将不对身份验证报文的时间戳进行超时校验。
加密与压缩
这两个功能默认是不开启的,需要在 frpc.ini 中通过配置来为指定的代理启用加密与压缩的功能,压缩算法使用 snappy:
# frpc.ini
type = tcp
local_port = 22
remote_port = 6000
use_encryption = true
use_compression = true
如果公司内网防火墙对外网访问进行了流量识别与屏蔽,例如禁止了 ssh 协议等,通过设置 use_encryption = true,将 frpc 与 frps 之间的通信内容加密传输,将会有效防止流量被拦截。
如果传输的报文长度较长,通过设置 use_compression = true 对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 cpu 资源。
客户端热加载配置文件
当修改了 frpc 中的代理配置,可以通过 frpc --reload 命令来动态加载配置文件,通常会在 10 秒内完成代理的更新。
启用此功能需要在 frpc 中启用 admin 端口,用于提供 API 服务。配置如下:
# frpc.ini
admin_addr = 127.0.0.1
admin_port = 7400
之后执行重启命令:
frpc -c ./frpc.ini --reload
等待一段时间后客户端会根据新的配置文件创建、更新、删除代理。
需要注意的是,[common] 中的参数除了 start 外目前无法被修改。
由于从 v0.10.0 版本开始,所有 proxy 都在客户端配置,原先的特权模式是目前唯一支持的模式。
端口白名单
为了防止端口被滥用,可以手动指定允许哪些端口被使用,在 frps.ini 中通过 privilege_allow_ports 来指定:
# frps.ini
privilege_allow_ports = 01,000
privilege_allow_ports 可以配置允许使用的某个指定端口或者是一个范围内的所有端口,以 , 分隔,指定的范围以 - 分隔。
TCP 多路复用
从 v0.10.0 版本开始,客户端和服务器端之间的连接支持多路复用,不再需要为每一个用户请求创建一个连接,使连接建立的延迟降低,并且避免了大量文件描述符的占用,使 frp 可以承载更高的并发数。
该功能默认启用,如需关闭,可以在 frps.ini 和 frpc.ini 中配置,该配置项在服务端和客户端必须一致:
# frps.ini 和 frpc.ini 中
tcp_mux = false
底层通信可选 kcp 协议
从 v0.12.0 版本开始,底层通信协议支持选择 kcp 协议,在弱网环境下传输效率提升明显,但是会有一些额外的流量消耗。
开启 kcp 协议支持:
在 frps.ini 中启用 kcp 协议支持,指定一个 udp 端口用于接收客户端请求:
# frps.ini
bind_port = 7000
# kcp 绑定的是 udp 端口,可以和 bind_port 一样
kcp_bind_port = 7000
在 frpc.ini 指定需要使用的协议类型,目前只支持 tcp 和 kcp。其他代理配置不需要变更:
# frpc.ini
server_addr = x.x.x.x
# server_port 指定为 frps 的 kcp_bind_port
server_port = 7000
protocol = kcp
像之前一样使用 frp,需要注意开放相关机器上的 udp 的端口的访问权限。
默认情况下,当用户请求建立连接后,frps 才会请求 frpc 主动与后端服务建立一个连接。当为指定的代理启用连接池后,frp 会预先和后端服务建立起指定数量的连接,每次接收到用户请求后,会从连接池中取出一个连接和用户连接关联起来,避免了等待与后端服务建立连接以及 frpc 和 frps 之间传递控制信息的时间。
这一功能比较适合有大量短连接请求时开启。
首先可以在 frps.ini 中设置每个代理可以创建的连接池上限,避免大量资源占用,客户端设置超过此配置后会被调整到当前值:
# frps.ini
max_pool_count = 5
在 frpc.ini 中为客户端启用连接池,指定预创建连接的数量:
# frpc.ini
pool_count = 1
修改 Host Header
通常情况下 frp 不会修改转发的任何数据。但有一些后端服务会根据 http 请求 header 中的 host 字段来展现不同的网站,例如 nginx 的虚拟主机服务,启用 host-header 的修改功能可以动态修改 http 请求中的 host 字段。该功能仅限于 http 类型的代理。
# frpc.ini
type = http
local_port = 80
custom_domains = test.yourdomain.com
host_header_rewrite = dev.yourdomain.com
原来 http 请求中的 host 字段 test.yourdomain.com 转发到后端服务时会被替换为 dev.yourdomain.com。
获取用户真实 IP
目前只有 http 类型的代理支持这一功能,可以通过用户请求的 header 中的 X-Forwarded-For 和 X-Real-IP 来获取用户真实 IP。
需要注意的是,目前只在每一个用户连接的第一个 HTTP 请求中添加了这两个 header。
通过密码保护你的 web 服务
由于所有客户端共用一个 frps 的 http 服务端口,任何知道你的域名和 url 的人都能访问到你部署在内网的 web 服务,但是在某些场景下需要确保只有限定的用户才能访问。
frp 支持通过 HTTP Basic Auth 来保护你的 web 服务,使用户需要通过用户名和密码才能访问到你的服务。
该功能目前仅限于 http 类型的代理,需要在 frpc 的代理配置中添加用户名和密码的设置。
# frpc.ini
type = http
local_port = 80
custom_domains = test.yourdomain.com
http_user = abc
http_pwd = abc
通过浏览器访问 http://test.yourdomain.com,需要输入配置的用户名和密码才能访问。
自定义二级域名
在多人同时使用一个 frps 时,通过自定义二级域名的方式来使用会更加方便。
通过在 frps 的配置文件中配置 subdomain_host,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains,而是配置一个 subdomain 参数。
只需要将 *.{subdomain_host} 解析到 frps 所在服务器。之后用户可以通过 subdomain 自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host} 来访问自己的 web 服务。
# frps.ini
subdomain_host = frps.com
将泛域名 *.frps.com 解析到 frps 所在服务器的 IP 地址。
# frpc.ini
type = http
local_port = 80
subdomain = test
frps 和 fprc 都启动成功后,通过 test.frps.com 就可以访问到内网的 web 服务。
需要注意的是如果 frps 配置了 subdomain_host,则 custom_domains 中不能是属于 subdomain_host 的子域名或者泛域名。
同一个 http 或 https 类型的代理中 custom_domains 和 subdomain 可以同时配置。
frp 支持根据请求的 URL 路径路由转发到不同的后端服务。
通过配置文件中的 locations 字段指定一个或多个 proxy 能够匹配的 URL 前缀(目前仅支持最大前缀匹配,之后会考虑正则匹配)。例如指定 locations = /news,则所有 URL 以 /news 开头的请求都会被转发到这个服务。
# frpc.ini
type = http
local_port = 80
custom_domains = web.yourdomain.com
locations = /
type = http
local_port = 81
custom_domains = web.yourdomain.com
locations = /news,/about
按照上述的示例配置后,web.yourdomain.com 这个域名下所有以 /news 以及 /about 作为前缀的 URL 请求都会被转发到 web02,其余的请求会被转发到 web01。
通过代理连接 frps
在只能通过代理访问外网的环境内,frpc 支持通过 HTTP PROXY 和 frps 进行通信。
可以通过设置 HTTP_PROXY 系统环境变量或者通过在 frpc 的配置文件中设置 http_proxy 参数来使用此功能。
仅在 protocol = tcp 时生效。
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
http_proxy = http://user:pwd@192.168.1.128:8080
默认情况下,frpc 只会转发请求到本地 tcp 或 udp 端口。
插件模式是为了在客户端提供更加丰富的功能,目前内置的插件有 unix_domain_socket、http_proxy、socks5。具体使用方式请查看。
通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。使用插件后 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:
# frpc.ini
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
plugin_http_user 和 plugin_http_passwd 即为 http_proxy 插件可选的配置参数。
计划在后续版本中加入的功能与优化,排名不分先后,如果有其他功能建议欢迎在
frps 记录 http 请求日志。
frps 支持直接反向代理,类似 haproxy。
frpc 支持负载均衡到后端不同服务。
frpc 支持直接作为 webserver 访问指定静态页面。
支持 udp 打洞的方式,提供两边内网机器直接通信,流量不经过服务器转发。
集成对 k8s 等平台的支持。frp配置本地服务端口到服务器80端口
搭建环境:
ubuntu 16.04 LTS (本地服务计算机) ubuntu 14.04 LTS(阿里云服务器)
apache tomcat 7
frp 0.8.1 linux
搭建过程:
frp 0.8.1 linux 二进制包
任意版本jvm
分别在服务端ubuntu和客户端ubuntu解压安装包(jdk以及tomcat这里不再赘述)
tar -zxvf frp_0.8.1_linux.tar.gz
配置本地ubuntu 16.04 LTS 中frpc.ini为:
server_addr = #阿里云服务器ip地址
server_port = 7000
auth_token = 123
type = http
local_port = 8889 #本地端口地址
修改阿里云服务器ubuntu 14.04 LTS版本frps.ini配置为:
bind_port = 7000
vhost_http_port = 80
type = http
custom_domains = #阿里云服务器地址(即服务访问地址,这里最好这么配置)
auth_token = 123
[web-home]
type = http
custom_domains = #同上一标签
auth_token = 123
./frps -c ./frps.ini
启动tomcat项目以及客户端
./frpc -c ./frpc.ini
此时访问custom_domains标签设置的地址:80即可经过frp代理进入到本地服务调试。
没有更多推荐了,&& 免费的内网穿透,内网端口映射工具,无需设置路由器,公网IP,不限流量,不限连接数
本文件只介绍用 frp 连接内网 VPN 服务器,其他的功能及实现方法还请到官网查看。
试用了下花生壳全家套,发现要钱且免费的不太好用,作为一名学生党当然是找开源免费的东西代替啦。之前发现 SoftEtherVPN 竟然自带内网穿透,欣喜之余发现所用的 VPN 协议竟是 SSTP,Apple 全家桶都不原生支持该协议,所以还是利用 frp 进行内网穿透。
注意!!!该方法只在某些机器上成功了,我在实际测试中遇到不少失败,如有网友发现错误,请及时指出,谢谢!
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
访问内外 VPN
由于 frp 的原理是端口映射,因此我们首先需要一台拥有外网 IP 的服务器,以此做中转,连接内网服务器。关于 frp 的实现原理可以查看项目主页了解。
由于我搭建的 VPN 协议用的是 L2TP over IPsec 协议,L2TP over IPsec 协议用的是 500 和 4500 端口,因此我们需要对这两个端口进行端口映射。
这里 frp 规定处于内网的机器是客户端,用 frpc 工具和 frpc.ini 配置文件。拥有外网 IP 地址的是服务端,用 frps 和 frps.ini 配置文件。
服务端配置
修改拥有外网 IP 服务器的 frps.ini 文件,下面是适合 L2TP over IPsec 协议的配置,如果是其他配置请做适当的修改。
# frps.ini
bind_port = 7000
启动 frps:
./frps -c ./frps.ini
客户端配置
frpc 内置了 http proxy 和 socks5 插件,可以使其他机器通过 frpc 的网络访问互联网。
启动 frpc,启用 http_proxy 或 socks5 插件(plugin 换为 socks5 即可), 配置如下:
# frpc.ini
server_addr = x.x.x.x
server_port = 7000
[vpn_port1]
type = udp
local_port = 500
remote_port = 500
[vpn_port2]
type = udp
local_port = 4500
remote_port = 450019.1k 次阅读
标签:至少1个,最多5个
为什么写这篇文章
因为有在外面访问家里 NAS 的需求,群晖自带的动态域名解析访问又太慢(因为群晖自带动态域名的 DNS 服务器在国外)。所以需要用内网穿透技术来实现通过其他公网 IP 来访问家里的 NAS 设备的需求。所以才有了这篇文章。
NAS - 简单的说就是一个存储中心。
Frp - 一种内网穿透技术。
内网穿透 - 就是通过其他公网 IP 来访问本地没有公网 IP 网络环境的一个技术。
内网穿透技术众多,比如花生壳内网穿透、Ngrok、Frp 都是现在主流的内网穿透技术。但我个人认为 Frp 是目前最好用配置最简单的(经过测试)。
花生壳配置简单方便,比较傻瓜化。但要收费。虽然也有免费版,但由于免费版的流量限制,基本上没有什么实际作用。
Ngrok发布时间相对较长,对象较为成熟的一种内网穿透技术。但由于功能的强大。配置较为繁琐。因为折腾许久没有成功过,最后放弃。
Frp配置简单,第一次用就配置成功了。并且适用于各大主流平台设备。
一台有公网 IP 的服务器 (VPS、云主机)之前注册了一个国外的 VPS, 准备做内网穿透和 vpn 用,但由于访问速度。果断放弃,最后换成了自己阿里云 ECS。
NAS (客户端)群晖 DS 416 play
由于 Frp 文档还是比较详细。我不过多做解释。
服务器端配置:
登录服务器,在
下载自己服务器对应版本 Frp
wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz
实例中:我的阿里云 ECS 用的 centos7 所以我选择 linux_amd64 64位的 Frp 0.12.0 最新测试版的
使用 tar 指令解压 tar.gz 文件
tar -zxvf frp_0.12.0_linux_amd64.tar.gz
进入 frp 目录
cd frp_0.12.0_linux_amd64
删除不必要的客户端文件
rm -f frpc frpc_full.ini frpc.ini
版本不同可能稍有差异,frpc 为客户端文件 frps 为服务器端文件
配置服务器端文件
vi frps.ini
frps.ini 为服务器配置文件
编辑配置文件
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = 用户名
dashboard_pwd = 密码
max_pool_count = 5
authentication_timeout = 900
subdomain_host = lekee.cc
listen_port = 6000
auth_token = 和客服端 token 对应
简单解释:
[common] 必填的
bind_port Frp 服务端口(可自定义)vhost_http_port http 访问端口(可自定义)dashboard_port dashboard 界面端口dashboard_user 登录 dashboard 用户名dashboard_pwd 登录 dashboard 密码max_pool_count 最大连接池数量authentication_timeout 超时验证时间subdomain_host 自定义二级域名
listen_port ssh 访问端口auth_token 用户身份认证
保存上面配置文件吗,启动 frp 服务器
./frps -c ./frps.ini
需要后台运行,请看下面
服务端配置结束。
客户端配置
客户端就是您本地需要做外网服务的设备,可以是 PC、Mac、NAS、路由器、或者虚拟机里的 liunx 系统。
这篇文章主要是利用 Frp 技术访问在群晖 NAS 服务的应用。实例也是 NAS 系统。
SSH 登录群晖 NAS (群晖必须开启 ssh)
我设置过别名,详情查看我的另一篇文章ssh nas = ssh user@ip
下载 Frp, 删除服务端文件。(因为和服务端配置一样,不再一一赘述。)
sudo -i // 切换 root 用户
wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_386.tar.gz
frp_0.12.0_linux_386.tar.gz
cd frp_0.12.0_linux_386
rm -f frps frps_full.ini frps.ini
编辑 frpc.ini 文件(客户端配置文件)
vi frpc.ini
编辑配置文件如下
server_addr = ip
server_port = 7000
auth_token = 和服务器端对应
pool_count = 1
type = tcp
local_ip = NAS 局域网ip
local_port = 22
remote_port = 6000
type = http
local_port = 5000
subdomain = nas
type = http
local_port = 80
subdomain = web
简单解释:
[common] 必填的
server_addr 服务器端公网server_port frp 服务端口,和服务器端 bind_port 一致auth_token 和前面服务器端 [ssh] auth_token 一致pool_count 连接池数量
type 服务类型(tcp、http、https、udp)local_ip NAS 本地局域网内网 iplocal_port NAS 开启 ssh 服务端口号,默认 22remote_port 服务器端 ssh 端口,和服务器端 [ssh] listen_port 配置一致
[nas] NAS 管理界面
subdomain 二级域名 nas.lekee.cc 访问 NAStype = http 服务类型为 httplocal_port NAS 默认端口 5000
[web] NAS web Station 服务,没用可以不用设置
type = http 类型为 httplocal_port = 80 NAS web 服务端口subdomain = web 二级域名 web.lekee.cc 使用自定义二级域名的时候,域名 *.lekee.cc 要解析到服务器 IP
保存,运行。(后台运行,请看下面)
./frpc -c ./frpc.ini
此时在服务端会看到"start proxy sucess"字样,即连接成功。
ssh -p 6000 user@服务器ip
user 为你登录群晖 NAS 的用户名
打开浏览器输入 nas.lekee.cc.com:8080, 显示群晖登录界面成功。
NAS web Station
打开浏览器输入 web.lekee.cc.com:8080, 显示下面页面成功。
域名后面 8080 端口可以隐藏,下面介绍如何隐藏 8080 端口。
后台运行服务的方法有很多,这里只说一种可以在服务器端(Linux)和客户端(NAS)都可以用的 nohup指令
nohup ./frps -c ./frps.ini &
nohup ./frpc -c ./frpc.ini &
我的另一篇文章
隐藏 8080 端口
目前使用一切正常,能满足我的日常需求。在外面需要访问 NAS 里的的文件的时候速度还比较满意。今天还测试在外面看 NAS 里的视频,也一点都不卡。
但我的担心就是在外面观看 NAS 里的视频的时候,流量有点害怕。因为我现在使用阿里云 ECS 计费方式是按流量计费的。不知道这样在外面看视频,用阿里云做中转。流量到底是怎么计算的。还需要进一步探究。不过之前阿里云上预存1000元,都好几个月了。还有999.78元。
这个技术伟大之处就是,只要设备能上网。不管有没有公网 IP,都可以让任何一个能上网的机子访问该设备。该设备可能是一台 PC,一个服务器,一个路由器,一个NAS,一个摄像头,一个... 无限扩展无限衍生,无限可能...希望本文能您带来帮助!
11 收藏&&|&&37
你可能感兴趣的文章
这个必须需要有外网服务器,其实原理是代理然后转发,成本有点高,要是路由器有公网ip,还不如端口映射好,然后家里随便搞台机器自动更新域名a地址配置,然后直接就可以访问到家里面去了。以前我是写了个程序获取公网ip,然后通过dnspod的api更新域名a地址,go语言写的,交叉编译,然后树莓派上运行,花生壳程序也能做,不过不喜欢花生壳的域名限制
这个必须需要有外网服务器,其实原理是代理然后转发,成本有点高,要是路由器有公网ip,还不如端口映射好,然后家里随便搞台机器自动更新域名a地址配置,然后直接就可以访问到家里面去了。以前我是写了个程序获取公网ip,然后通过dnspod的api更新域名a地址,go语言写的,交叉编译,然后树莓派上运行,花生壳程序也能做,不过不喜欢花生壳的域名限制
@ixiaohei 这就是专门给没有公网IP环境用的,现在运营商基本都不分配外网IP了
@ixiaohei 这就是专门给没有公网IP环境用的,现在运营商基本都不分配外网IP了
@rockts 希望你写一遍怒怼电信运营商获取公网ip的文章,另外你nas好用不?
@rockts 希望你写一遍怒怼电信运营商获取公网ip的文章,另外你nas好用不?
@ixiaohei 为了要要公网IP,非大劲了。最后投诉到工信部也无果。放弃了。怒怼电信的文章,除了吐槽就是牢骚没啥意义。nas,看你做什么,很好用
@ixiaohei 为了要要公网IP,非大劲了。最后投诉到工信部也无果。放弃了。怒怼电信的文章,除了吐槽就是牢骚没啥意义。nas,看你做什么,很好用
想问下,如果要通过FTP连接要怎么设置,自己试了下没成功。另外能不能像在局域网下一样,把群晖的硬盘映射到Windows,直接使用硬盘里的文件呢?
想问下,如果要通过FTP连接要怎么设置,自己试了下没成功。另外能不能像在局域网下一样,把群晖的硬盘映射到Windows,直接使用硬盘里的文件呢?
成功, 感谢
成功, 感谢
按你的操作搞的,但是在启动客户端时碰到问题了,显示:DiskStation& ./frpc -c ./frpc.ini
dial tcp 172.104.113.219:7000: getsockopt: connection refused,这是什么情况呢?我在VPS上把配置文件里用到的端口都打开了啊。
按你的操作搞的,但是在启动客户端时碰到问题了,显示:DiskStation& ./frpc -c ./frpc.ini
dial tcp 172.104.113.219:7000: getsockopt: connection refused,这是什么情况呢?我在VPS上把配置文件里用到的端口都打开了啊。
拒接连接,服务器端的防火墙,端口都开了吗?方便的话,把服务端和客户端的frp配置文件 贴一下。
拒接连接,服务器端的防火墙,端口都开了吗?
方便的话,把服务端和客户端的frp配置文件 贴一下。
我现在能通过SSH访问群晖了,但是NAS和WEB界面还是打不开,配置基本上都是按你教程来的,搞不懂了。服务器配置:[common]bind_port = 7000vhost_http_port = 8080dashboard_port = 7500dashboard_user = admindashboard_pwd = 123456max_pool_count = 5authentication_timeout = 900
subdomain_host = hp.qfsyj.com
[ssh]listen_port = 6000auth_token = 123321客户端配置:[common]server_addr = 172.104.113.219server_port = 7000auth_token = 123321pool_count = 1
[ssh]type = tcplocal_ip = 192.168.2.136local_port = 22remote_port = 6000
[nas]type = httplocal_port = 5000subdomain = nas.qfsyj.com
[web]type = httplocal_port = 80subdomain = web.qfsyj.com
求指点,谢谢!
我现在能通过SSH访问群晖了,但是NAS和WEB界面还是打不开,配置基本上都是按你教程来的,搞不懂了。
服务器配置:
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
max_pool_count = 5
authentication_timeout = 900
subdomain_host = hp.qfsyj.com
listen_port = 6000
auth_token = 123321
客户端配置:
server_addr = 172.104.113.219
server_port = 7000
auth_token = 123321
pool_count = 1
type = tcp
local_ip = 192.168.2.136
local_port = 22
remote_port = 6000
type = http
local_port = 5000
subdomain = nas.qfsyj.com
type = http
local_port = 80
subdomain = web.qfsyj.com
求指点,谢谢!
Hi,请问这个问题你解决了嘛?
Hi,请问这个问题你解决了嘛?
@流年颜[liunianyan] 没解决
[web]type = httplocal_port = 80local_ip = 192.168.0.1自己设置nas的地址remote_port = 8080privilege_mode = truesubdomain = web.qfsyj.com
然后你访问web.qfsyj.com.hp.qfsyj.com:8080
type = http
local_port = 80
local_ip = 192.168.0.1自己设置nas的地址
remote_port = 8080
privilege_mode = true
subdomain = web.qfsyj.com
然后你访问web.qfsyj.com.hp.qfsyj.com:8080
客户端显示这个: 09:05:59 [W] [control.go:345] [76ecd3] [web] start error: '.' and '*' is not supported in subdomain 09:05:59 [W] [control.go:345] [76ecd3] [nas] start error: '.' and '*' is not supported in subdomain子域名不支持?这要怎么搞?
客户端显示这个:
09:05:59 [W] [control.go:345] [76ecd3] [web] start error: '.' and '*' is not supported in subdomain
09:05:59 [W] [control.go:345] [76ecd3] [nas] start error: '.' and '*' is not supported in subdomain
子域名不支持?这要怎么搞?
服务器端的域名 subdomain_host : lekee.cc 客户端: subdomain: web 就可以了,另外您的*.lekee.cc 解析到您服务器上
服务器端的域名 subdomain_host : lekee.cc 客户端: subdomain: web 就可以了,另外您的*.lekee.cc 解析到您服务器上
搞定了,谢谢!
搞定了,谢谢!
@秦大叔 搞定好
@秦大叔 搞定好
群晖的硬盘可以映射到 windows 下面,如果是 win10 的话,直接打开此电脑,右键。就会看到一个添加一个网络位置 。然后下一步,下一步
Interrnet 地址或网络地址浏览,就可以看见您网络邻居里所有您局域网内的设备了。不过不知道为什么我的群晖在我网络邻居里看不到。直接输入
\nas设备名共享目录 也可以的。关于FTP,貌似现在内网穿透还没有能用的。我之前有这个需求,试了好多。花生壳、ngrok、还有现在用的 frp 。您也可以在他们的官网在咨询下。
群晖的硬盘可以映射到 windows 下面,如果是 win10 的话,直接打开此电脑,右键。就会看到一个添加一个网络位置 。然后下一步,下一步
Interrnet 地址或网络地址浏览,就可以看见您网络邻居里所有您局域网内的设备了。不过不知道为什么我的群晖在我网络邻居里看不到。直接输入
\\nas设备名\共享目录 也可以的。
关于FTP,貌似现在内网穿透还没有能用的。我之前有这个需求,试了好多。花生壳、ngrok、还有现在用的 frp 。
您也可以在他们的官网在咨询下。
在局域网下映射群晖硬盘我这是没问题的,我之前问的意思是能不能通过frp在单位电脑里映射家里群晖的硬盘,FTP不行,估计这个映射也是实现不了的。
在局域网下映射群晖硬盘我这是没问题的,我之前问的意思是能不能通过frp在单位电脑里映射家里群晖的硬盘,FTP不行,估计这个映射也是实现不了的。
@秦大叔 这个我没测试过理论应该可以,你把ip换成你群晖域名试试。这个因为我没需求没有测试过
@秦大叔 这个我没测试过理论应该可以,你把ip换成你群晖域名试试。这个因为我没需求没有测试过
配置文件基本和前面的类似,使用阿里云服务器ECS公网IP出现“ 20:59:46 [W] [control.go:121] login to server failed: dial tcp x.x.x.x:7000: getsockopt: connection timed out” , 不知问题出在哪里?
配置文件基本和前面的类似,使用阿里云服务器ECS公网IP
出现“ 20:59:46 [W] [control.go:121] login to server failed: dial tcp x.x.x.x:7000: getsockopt: connection timed out” , 不知问题出在哪里?
@fbgjj 服务超时,看一下服务器防火墙相关端口是否开启,
@fbgjj 服务超时,看一下服务器防火墙相关端口是否开启
通过打开阿里云服务器的相关端口,超时问题解决,谢谢!nas 上执行 fprc时 出现 “broken pipe”,什么原因啊?
通过打开阿里云服务器的相关端口,超时问题解决,谢谢!nas 上执行 fprc时 出现 “broken pipe”,什么原因啊?
@fbgjj nas 上一定要root 用户执行不行重启下nas 试试
@fbgjj nas 上一定要root 用户执行不行重启下nas 试试
[common]server_addr = ...server_port = 7000auth_token = wj7453821pool_count = 1
[ssh]type = tcplocal_ip = 192.168.1.239local_port = 22remote_port = 6000
[nas]type = httplocal_port = 5000subdomain = nas
[web]type = httplocal_port = 80subdomain = web
服务端配置[common]bind_port = 7000vhost_http_port = 8080dashboard_port = 7500dashboard_user = admindashboard_pwd = wwh7757max_pool_count = 5authentication_timeout = 900
subdomain_host = wwh7757.tk
[ssh]listen_port = 6000auth_token = wj7453821
7500里面映射是成功的,但是 打不开NAS页面
server_addr = *.*.*.*
server_port = 7000
auth_token = wj7453821
pool_count = 1
type = tcp
local_ip = 192.168.1.239
local_port = 22
remote_port = 6000
type = http
local_port = 5000
subdomain = nas
type = http
local_port = 80
subdomain = web
服务端配置
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = wwh7757
max_pool_count = 5
authentication_timeout = 900
subdomain_host = wwh7757.tk
listen_port = 6000
auth_token = wj7453821
7500里面映射是成功的,但是 打不开NAS页面
@王大爷 如果您没有隐藏8080端口的话您的nas域名应该是nas.wwh7757.tk:8080
如果打不开看下检查:1、服务器相关端口防火墙是否开启比如,,2、nas 上 fprc 服务是否跑起
@王大爷 如果您没有隐藏8080端口的话
您的nas域名应该是
nas.wwh7757.tk:8080
如果打不开看下检查:
1、服务器相关端口防火墙是否开启比如,,
2、nas 上 fprc 服务是否跑起
又有个新问题要请教你了,我用域名:8080能打开群晖默认的web页面,然后在群晖上装了个wordpress,本地IP/wordpress能打开,但是用域名:8080就还是默认web页面,改成域名:8080/wordpress访问就自动跳转成域名/wordpress导致打不开,请问这要怎么搞呢?
又有个新问题要请教你了,我用域名:8080能打开群晖默认的web页面,然后在群晖上装了个wordpress,本地IP/wordpress能打开,但是用域名:8080就还是默认web页面,改成域名:8080/wordpress访问就自动跳转成域名/wordpress导致打不开,请问这要怎么搞呢?
@秦大叔 最近在外玩呢,过两天回家了。答应您
@秦大叔 最近在外玩呢,过两天回家了。答应您
我刚才测试了,
就可以打开了啊
@rockts[rockts]
我刚才测试了,http://web.lekee.cc/wordpress/
就可以打开了啊
我的就不行,用域名/wordpress是404,群晖那边还有什么要设置吗?
@rockts[rockts] 我的就不行,用域名/wordpress是404,群晖那边还有什么要设置吗?
你好,我也有像@秦大叔一样的问题,按照教程中对frps和frpc进行了编辑,也在vps中打开了所需的等端口,但是还是提示“ getsockopt: connection refused”,请问这是什么情况呢,帮我分析下吧,十分感谢!服务器frps设置如下:[common]bind_port = 7000vhost_http_port = 8080dashboard_port = 7500dashboard_user = 输入了我的用户名dashboard_pwd = 输入了我的密码max_pool_count = 5authentication_timeout = 900
subdomain_host = 我的域名.top
[ssh]listen_port = 6000auth_token = 123
nas的frpc设置如下:[common]server_addr = vps的ip地址server_port = 7000auth_token = 123pool_count = 1
[ssh]type = tcplocal_ip = nas在我家局域网中的地址local_port = nas中所列的ssh端口(345)remote_port = 6000
[nas]type = httplocal_port = 5000subdomain = nas
[web]type = httplocal_port = 80subdomain = web
运行./frpc -c ./frpc.ini后的提示信息为: 12:14:32 [W] [control.go:121] login to server failed: dial tcp vps的ip地址:7000: getsockopt: connection refuseddial tcp vps的ip地址 :7000: getsockopt: connection refused
运行/etc/init.d/iptables status查看端口情况如下:num
prot opt source
destination1
tcp dpt:60002
tcp dpt:75003
tcp dpt:60004
tcp dpt:60005
tcp dpt:60006
tcp dpt:60007
tcp dpt:80808
tcp dpt:7000
你好,我也有像@秦大叔一样的问题,按照教程中对frps和frpc进行了编辑,也在vps中打开了所需的等端口,但是还是提示“ getsockopt: connection refused”,请问这是什么情况呢,帮我分析下吧,十分感谢!
服务器frps设置如下:
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = 输入了我的用户名
dashboard_pwd = 输入了我的密码
max_pool_count = 5
authentication_timeout = 900
subdomain_host = 我的域名.top
listen_port = 6000
auth_token = 123
nas的frpc设置如下:
server_addr = vps的ip地址
server_port = 7000
auth_token = 123
pool_count = 1
type = tcp
local_ip = nas在我家局域网中的地址
local_port = nas中所列的ssh端口(345)
remote_port = 6000
type = http
local_port = 5000
subdomain = nas
type = http
local_port = 80
subdomain = web
运行./frpc -c ./frpc.ini后的提示信息为:
12:14:32 [W] [control.go:121] login to server failed: dial tcp vps的ip地址:7000: getsockopt: connection refused
dial tcp vps的ip地址 :7000: getsockopt: connection refused
运行/etc/init.d/iptables status查看端口情况如下:
prot opt source
destination
tcp dpt:6000
tcp dpt:7500
tcp dpt:6000
tcp dpt:6000
tcp dpt:6000
tcp dpt:6000
tcp dpt:8080
tcp dpt:7000
服务器上7000 端口开了没?
服务器上7000 端口开了没?
作者您好,从下面这个端口情况看,已经打开了运行/etc/init.d/iptables status查看端口情况如下:num target prot opt source destination1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:60002 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:75003 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:60004 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:60005 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:60006 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:60007 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80808 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:7000
作者您好,从下面这个端口情况看,已经打开了
运行/etc/init.d/iptables status查看端口情况如下:
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:7500
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:7000
现在还报错吗?
@vanly[vanly_59966af06ced6] 现在还报错吗?
按流量计费里面有个配置费用,按小时算钱的,你怎么几个月才用了几毛?不可能吧。
按流量计费里面有个配置费用,按小时算钱的,你怎么几个月才用了几毛?不可能吧。
流量不按时间的,不知道为什么现在还999了
流量不按时间的,不知道为什么现在还999了
随便上ali点个ecs,下面都会提示,公网流量费用:¥ 0.80 /GB 配置费用:¥ 0.098 /时 这个配置费用,你就算一点没走流量,每个小时要钱¥ 0.098 /时
随便上ali点个ecs,下面都会提示,
公网流量费用:¥ 0.80 /GB
配置费用:¥ 0.098 /时
这个配置费用,你就算一点没走流量,每个小时要钱¥ 0.098 /时
@pfqckl 他们按流量计费估计有bug,不要告诉别人
@pfqckl 他们按流量计费估计有bug,不要告诉别人
您好,我ssh,nas,web都成功了。但是测试无法访问。。。根据您的教程,也用的阿里云,所以我申请的半年免费阿里云ECS。是不是要备案才行?得20多天才能备案成功。怕等20天还是不行,所以我想问问是不是备案的原因。
您好,我ssh,nas,web都成功了。但是测试无法访问。。。
根据您的教程,也用的阿里云,所以我申请的半年免费阿里云ECS。是不是要备案才行?得20多天才能备案成功。怕等20天还是不行,所以我想问问是不是备案的原因。
@zhaotan121 要用域名的话肯定要备案,我是这么理解的。要你你打电话问问阿里云客服很热情的
@zhaotan121 要用域名的话肯定要备案,我是这么理解的。要你你打电话问问阿里云客服很热情的
然后突然可以了 不知道是不是开了8080端口的原因
然后突然可以了 不知道是不是开了8080端口的原因
frp 要是8080端口的。新开的ECS,安全策略应该没有开8080端口
frp 要是8080端口的。新开的ECS,安全策略应该没有开8080端口
我的nas的web管理地址是我的摄像头地址是如果我的pc连到和nas同一个路由器上,设置为192.168.0.3,就可以打开nas的web地址,用admin登录进去就行。
我在路由器配置了frpc,服务器用的阿里云Linux,服务器配置了frps。
现在打开阿里云IP:2000可以穿透访问到192.168.0.8的摄像头web地址。但是打开阿里云ip:443却无法访问。路由器也开了http和https访问。
阿里云主机没配置https证书,路由器没配置https证书,NAS能内网打开https的web应该是配置证书了吧?这个nas我也不懂有没有配置,内置web地址就是https加密的。
我的nas的web管理地址是https://192.168.0.10
我的摄像头地址是http://192.168.0.8
如果我的pc连到和nas同一个路由器上,设置为192.168.0.3,就可以打开nas的web地址,用admin登录进去就行。
我在路由器配置了frpc,服务器用的阿里云Linux,服务器配置了frps。
现在打开阿里云IP:2000可以穿透访问到192.168.0.8的摄像头web地址。但是打开阿里云ip:443却无法访问https://192.168.0.10的nas的web地址。路由器也开了http和https访问。
阿里云主机没配置https证书,路由器没配置https证书,NAS能内网打开https的web应该是配置证书了吧?这个nas我也不懂有没有配置,内置web地址就是https加密的。
NAS自带的ssl证书不知道再外网上可以用吗?另外摄像头可以不做内网穿透。可以用自带的中继服务,类似quickconnect
NAS自带的ssl证书不知道再外网上可以用吗?另外摄像头可以不做内网穿透。可以用自带的中继服务,类似quickconnect
运行 ./frpc -c ./frpc.ini的时候出现[E] [control.go:246] authorization failed
运行 ./frpc -c ./frpc.ini的时候出现[E] [control.go:246] authorization failed
授权失败了,是 root
授权失败了,是 root
我是putty过去的
我是putty过去的
我通过网页nas.xxx.com:8080 是可以访问群晖的,但是通过cloud station driver 和ds photo 这些就显示连接失败,请问这个是什么原因
我通过网页nas.xxx.com:8080 是可以访问群晖的,但是通过cloud station driver 和ds photo 这些就显示连接失败,请问这个是什么原因
Ds Photo 用的群晖web服务,你web服务开启没有?另外群晖系统管理页面和web服务的默认端口也是不一样的。群晖管理界面的端口默认是5000 ,群晖web服务端口是80。你查看下,另外如果不能解决可以找我私聊,或者给我发截图。我好帮你判断
Ds Photo 用的群晖web服务,你web服务开启没有?另外群晖系统管理页面和web服务的默认端口也是不一样的。群晖管理界面的端口默认是5000 ,群晖web服务端口是80。你查看下,另外如果不能解决可以找我私聊,或者给我发截图。我好帮你判断
drive的端口是6690 ,好像没有封,方便给我联系方式吗?
drive的端口是6690 ,好像没有封,方便给我联系方式吗?
@arron[arron_5a9e69a80c3b3] rockts wx
阿里云相关章程禁止用户使用 ECS 实例做流量穿透服务。违规者最高处以关停并锁定实例的处罚,并清退处理。
玩内网穿透不会被清退么?我有点怕啊
阿里云相关章程
禁止用户使用 ECS 实例做流量穿透服务。违规者最高处以关停并锁定实例的处罚,并清退处理。
玩内网穿透不会被清退么?我有点怕啊
这个还不清楚,什么时候规定的?我去看看
这个还不清楚,什么时候规定的?我去看看
阿里云-&文档-&ecs-&用户指南-&ecs使用须知...红字部分
@rockts[rockts] https://help.aliyun.com/document_detail/25430.html?spm=a2c4g..604.oar5qr
阿里云-&文档-&ecs-&用户指南-&ecs使用须知...红字部分
貌似开个ECS专门用来的转发不让把,我的ECS上面还有其他应用的。
貌似开个ECS专门用来的转发不让把,我的ECS上面还有其他应用的。
nas& wget 64.tar.gz--09:47:05--
=& `frp_0.16.0_linux_amd64.tar.gz'
Resolving github.com... 13.229.188.59, 13.250.177.223, 52.74.223.119Connecting to github.com|13.229.188.59|:443... connected.ERROR: Certificate verification error for github.com: unable to get local issuer certificateTo connect to github.com insecurely, use `--no-check-certificate'.Unable to establish SSL connection.什么问题
nas& wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd
--09:47:05--
https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz
=& `frp_0.16.0_linux_amd64.tar.gz'
Resolving github.com... 13.229.188.59, 13.250.177.223, 52.74.223.119
Connecting to github.com|13.229.188.59|:443... connected.
ERROR: Certificate verification error for github.com: unable to get local issuer certificate
To connect to github.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
连接不了github吗?你的nas能上网吗?
连接不了github吗?你的nas能上网吗?
你可能感兴趣的文章
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 我的世界怎么端口映射 的文章

 

随机推荐