- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
注意事项:
1)服务器端和内网机器端下载的版本要相同,否则可能会影响内网穿透
2)根据服务器系统选择合适的脚本
脚本主要分为服务端与客户端文件
1.外网服务器端用到的是Frps和Frps.ini
2.win10电脑用到的是Frpc和Frpc.ini
注:
服务端部署,可以只保留服务端文件 frps**
客户端部署,可以只保留客户端文件 frpc**
下载地址:
https://github.com/fatedier/frp/releases/tag/v0.37.1
注意下载版本
tar -zxvf frp_0.37.1_linux_arm64.tar.gz
mv frp_0.37.1_linux_arm64 frp
cd frp
vim frps.ini
[common]
# 内网穿透服务器端监听的IP地址,可以省略,默认为127.0.0.1
bind_addr = 0.0.0.0
# 服务器端监听的端口,默认是7000,可自定义
bind_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = ch
./frps -c frps.ini
360会报毒
frpc.ini
[common]
# 外网-服务器端ip
server_addr = 121.**.**.124
# 外网-服务器端监听的端口(必须与Frps.ini中的配置一致)
server_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = ch
[ssh]
# 配置类型为http协议
type = tcp
# 内网机器的IP
local_ip = 127.0.0.1
#内网需要监听的端口(win10所启服务端口)
local_port = 8888
remote_port = 6000
./frpc -c frpc.ini
vps运行
curl 127.0.0.1
虽然成功,但是描述还是不详细,下面给出具体案例
场景:将内网linux 22端口映射到vps,kali访问vps,实现访问内网linux的效果
frps.ini
[common]
# 内网穿透服务器端监听的IP地址,可以省略,默认为127.0.0.1
bind_addr = 0.0.0.0
# 服务器端监听的端口,默认是7000,可自定义
bind_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = charles
./frps -c frps.ini
frpc.ini
[common]
# 外网-服务器端ip
server_addr = 121.**.**.124
# 外网-服务器端监听的端口(必须与Frps.ini中的配置一致)
server_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = charles
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
./frpc -c frpc.ini
ssh -oPort=6000 root@121.**.**.124
不得不说,很nice
frps.ini,设置http访问端口为8080,
https一样:type 设置为 https 即可
[common]
# 服务器端监听的端口,默认是7000,可自定义
bind_port = 7000
# 设置 http 访问端口为 8080
vhost_http_port = 8080
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = charles
./frps -c ./frps.ini
frpc.ini
[common]
# 外网-服务器端ip
server_addr = 121.**.**.124
# 外网-服务器端监听的端口(必须与Frps.ini中的配置一致)
server_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = charles
[web]
type = http
# 本地机器上 Web 服务对应的端口
local_port = 80
# 绑定自定义域名
custom_domains = www.***.net
./frpc -c ./frpc.ini
http://frp.***.net:8080
通过 static_file
插件可以对外提供一个简单的基于 HTTP 的文件访问服务。
[common]
# 服务器端监听的端口,默认是7000,可自定义
bind_port = 7000
# 设置 http 访问端口为 8080
vhost_http_port = 8080
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = charles
./frps -c ./frps.ini
[common]
# 外网-服务器端ip
server_addr = 121.**.**.124
# 外网-服务器端监听的端口(必须与Frps.ini中的配置一致)
server_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = charles
[test_static_file]
type = tcp
remote_port = 6000
plugin = static_file
# 要对外暴露的文件目录
plugin_local_path = /tmp
# 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = static
# 用户名
plugin_http_user = admin
# 密码
plugin_http_passwd = root
./frpc -c ./frpc.ini
http://121.**.**.124:6000/static/
通过浏览器查看 frp 的状态以及代理统计信息展示。
注:Dashboard 尚未针对大量的 proxy 数据展示做优化,如果出现 Dashboard 访问较慢的情况,请不要启用此功能。
需要在 frps.ini 中指定 dashboard 服务使用的端口,即可开启此功能:
frps.ini
[common]
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = root
http://121.**.**.124:7500
这两个功能默认是不开启的,需要在 frpc.ini 中通过配置来为指定的代理启用加密与压缩的功能,压缩算法使用 snappy:
frpc.ini
[ssh]
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 资源。
从 v0.25.0 版本开始 frpc 和 frps 之间支持通过 TLS 协议加密传输。通过在 frpc.ini
的 common
中配置 tls_enable = true
来启用此功能,安全性更高。
为了端口复用,frp 建立 TLS 连接的第一个字节为 0x17。
注意: 启用此功能后除 xtcp 外,不需要再设置 use_encryption。
目前支持在客户端的代理配置中设置代理级别的限速,限制单个 proxy 可以占用的带宽。
frpc.ini
[ssh]
type = tcp
local_port = 22
remote_port = 6000
bandwidth_limit = 1MB
在代理配置中增加 bandwidth_limit
字段启用此功能,目前仅支持 MB
和 KB
单位。
在 frpc 的配置文件中可以指定映射多个端口,目前只支持 tcp 和 udp 的类型。
这一功能通过 range:
段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。
例如要映射本地 6000-6005, 6007 这 6 个端口,主要配置如下:
[range:test_tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 6000-6006,6007
remote_port = 6000-6006,6007
实际连接成功后会创建 8 个 proxy,命名为 test_tcp_0, test_tcp_1 ... test_tcp_7
。
frps.ini
# 下面这句开头必须要有,表示配置的开始
[common]
# frps绑定端口 (必选)
bind_port = 7000
# frps 日志 (可选)
log_file = ./frps.log
# frps 日志等级 (可选)
log_level = warn
# frps 日志存放天数 (可选)
log_max_days = 30
# 默认为900秒,即15分钟,如果设置成0就不会对报文时间戳进行超时验证
authentication_timeout = 900
# 仪表盘端口,只有设置了才能使用仪表盘(即后台)
dashboard_port = 7500
# 仪表盘访问的用户名密码,如果不设置,则默认都是 admin
dashboard_user = admin
dashboard_pwd = admin
# frp 穿透访问内网中的网站监听端口 配合后面使用nginx做域名绑定访问
vhost_http_port = 7001
# 将 frp.so.codeceo.org 解析到服务端后,可以使用此域名来访问客户端对应的 http
subdomain_host = frp.so.codeceo.org
frpc.ini
[common]
# 服务端公网IP
server_addr = xxx.xxx.xxx.xxx
# 服务端frps绑定端口
server_port = 7000
[web1]
type = http
local_port = 80
custom_domains = web1.***.org
[web2]
type = http
local_ip = localhost
local_port = 9528
use_gzip = true
custom_domains = web2.***.org
[web6]
type = http
local_port = 80
custom_domains = web6.***.org
./frps: cannot execute binary file: Exec format error
说明软件版本与服务器架构选择不匹配,更换版本即可解决。
参考地址:
https://www.jianshu.com/p/6be158cc3685
https://segmentfault.com/a/1190000021876836
https://www.cnblogs.com/liscookie/p/11237615.html
是否有任何解决方案/补丁可以使 nginx 与上游的 socks 一起工作? 像这样: server { location / { proxy_pass socks5://ip:port
我的连接隧道有问题。因此,我正在使用两个安装了oracle xe(端口1521)的ubuntu服务器虚拟机,我们将它们称为uvm1和uvm2。我的目标是为两个服务器创建两个隧道,并将端口映射到主机,并
我正在使用 sshd 通过托管 Debian 的远程计算机隧道传输我所有的互联网流量。但是我的互联网连接变得很慢(大约 5 到 10 kbps!)。默认配置有什么问题会导致此问题吗? 提前致谢 最佳答
有没有办法在 OpenStreetMap 上显示所有隧道 + 道路?我正在为旅行制作自行车导航系统。在隧道中,我们丢失了 GPS 位置,因为隧道中没有 GPS 数据。我想知道我的位置进入隧道和离开隧道
我目前正在尝试在 Java 客户端(包括 Netty)和服务器之间实现一个 Http 隧道,所以我想知道是否有任何服务器也基于 Netty 来支持这个隧道,或者我应该构建服务器端我自己? 最佳答案 我
我希望从远程主机通过 SSH 建立一个端口。我希望将此实现为 oclif 插入;我希望用户体验如下所示: laptop$ give-jupyter http://localhost:4040/ lap
我正在寻找一种允许我使用 SSH 隧道连接到 R 中的 MySQL 服务器(而不是文件)的方法;我假设它需要 RCurl 和 RODBC 的组合,但我似乎无法让它正常工作。 我遇到了this post
基本上我想以编程方式通过代理服务器创建 SSL 隧道。我正在使用 openssl 创建 ssl 隧道,我可以创建它,但不确定如何通过代理服务器创建隧道。 最佳答案 快速谷歌搜索给我这个 pytunne
我想设置一个简单的 ssh 隧道,从本地机器到互联网上的机器。 我在用着 ssh -D 8080 -f -C -q -N -p 12122 @ 设置工作正常(我认为)导致 ssh 返回要求我提供的凭据
昨天,我接受了一家公司的 UI 开发面试。重点是面试官问了一个重要问题what is HTTP tunneling . 我从未遇到过有关 javascript、HTML 和 jquery 等 UI 内
对不起,长篇大论,我试图说得一清二楚。 * 一点背景 * 作为项目的一部分,我们需要能够使用远程桌面 (RDP) 从具有有效 IP 地址的服务器访问某些计算机(以下称为客户端)。这些客户端位于 NAT
我尝试了命令 killall ngrok,但我得到'killall' 未被识别为内部或外部命令、可操作程序或批处理文件。 killall 不应该和 ngrok 一起出现吗?我在互联网上找不到任何关于该
我需要连接到特定的 API,但该 API 只接受来 self 的配对服务器的请求。然后将这些信息包含在我们的网站中。 所以基本上我需要连接到服务器,使请求接收到答案并将其传输到我的主机,以便我可以使用
使用虚拟主机而不是部署的 Docker 容器,创建 ssh 隧道以便从我的本地机器访问分隔的机器对我来说是一个正常的工作过程。例如,将我的 psql 客户端连接到我只能从堡垒箱访问的 Postgres
我有一个从 Cloud Foundry 数据库转储数据的脚本,它的工作方式如下: cf ssh -L 33001:db.host:3306 --skip-remote-execution App &
我对以下系统架构有疑问: 假设我们有三台机器: SERVER A SERVER B EXTERNAL A SERVER A 正在提供一些流媒体服务,它在一个未知的网络后面,所以它在指定的端口上打开一个
我想从家庭计算机访问位于防火墙后面的工作计算机。 由于工作防火墙阻止意外的传入连接,我必须打开从工作计算机到家庭计算机的反向 SSH 隧道,如下所示: ssh -R 12345:localhost:2
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我遇到了 SSH 隧道问题,我知道这可能是我的本地端口的权限问题,很可能是 127.0.0.1:3308。但是,我已经以管理员身份运行了我的程序(sudo python3 myprogram.py),
我使用此链接在 centos linux 中创建 ip 隧道 http://www.techonia.com/create-tunnel-interface-linux . 然后我想删除现有的隧道,我
我是一名优秀的程序员,十分优秀!