- 使用 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
我正在寻找的服务器是: 轻量级, 非 buggy , 支持.NET, 在客户端上运行以进行测试, 在Windows上运行 Cassinni太过马车,IIS太昂贵,Apache很难安装,XSP仅是lin
所以我有大约10个短的css文件,可以与mvc应用程序一起使用。 有像 error.css login.css 等等... 仅有一些非常短的CSS文件,这些文件使更新和编辑变得容易(至少对我而言)。我
我正在编写程序来自动化 win32 表单。我正在使用 Microsoft UI 自动化库。我不知道如何获取和调用该表单上的预定义快捷键。现在我只需获取 MenuItem 的 AutomationEle
我有一个在后台线程上运行的及时操作。运行时,我当前将光标置于等待状态: Mouse.OverrideCursor = Cursors.Wait 我刚刚实现了一项功能,允许用户在厌倦等待时单击“取消”按
如何找到所有可能直接或间接调用给定方法的单元测试?当我更改方法时,我希望知道要运行的最佳测试;必须有一个工具! 因为我们有很多接口(interface),所以我对所有调用接口(interface)方法
我想知道,一个类会被装箱吗?我一直假设每个类都有一个虚拟表,可以用来标识类,所以它需要装箱吗? 最佳答案 只有值类型(结构)被装箱。类实例不会被装箱。 关于.net - 类是盒装的吗? 。网,我们在S
所以接下来有一个按钮调用(页面)。它的 href 链接是 site/blah/#。所以我知道它真正运行的 javascript 代码。在我解析完第一页后,我想解析下一页。我如何模拟鼠标点击,以便我可以
我想知道是否有人对解决以下设计问题有好的建议/模式。我有一个命令类的层次结构。在最抽象的层面上,我有一个 ICommand 接口(interface)。执行 ICommand 的 RunCommand
我在资源(xsd 文件)中有几个文件可用于验证收到的 xml 消息。我使用的资源文件名为 AppResources.resx,它包含一个名为 clientModels.xsd 的文件。当我尝试使用这样
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
(最后的简短版本) 我目前正在开发的软件需要跟踪任意数量的 MS Office 文件,现在需要提供将所有这些文件一起打印的功能,以及一些应用程序数据(可能会发送到打印机作为 .xps、.html 或
我想在不指定命名空间或程序集的情况下按名称(字符串)实例化一个类。像这样(Unity 语法): var processor = container.Resolve("SpecialProcessor"
我有一些代码可以对 64 位整数进行大量比较,但是它必须考虑数字的长度,就好像它被格式化为字符串一样。我无法更改调用代码,只能更改函数。 最简单的方法(除了 .ToString().Length 之外
使用遗留代码,我发现我有很多这样的语句(超过 500 个) bool isAEqualsB = (a == b) ? true : false; 这样重写有意义吗? bool isAEqualsB =
我有这个: AudioPlayer player = new AudioPlayer(); player.Directory = vc.Directory; player.StartTime = vc
我已经阅读了很多关于双重检查锁定的危险的文章,我会努力远离它,但话虽如此,我认为他们的阅读非常有趣。 我正在阅读 Joe Duffy 的这篇关于使用双重检查锁定实现单例的文章: http://www.
对于可变类型,值类型和引用类型之间的行为差异很明显: // Mutable value type PointMutStruct pms1 = new PointMutStruct(1, 2); P
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this q
我有一个 Cordova pp 我在 Controller 中调用post方法 它可以在浏览器中工作,但是在构建和调试apk时出现错误 ionic.bundle.js:23826 POST http:
我们正在尝试将时间戳附加到某些 URL 以让内容缓存但在它们发生更改时更新它们。我们有代码可以归结为: DateTime ts = File.GetLastWriteTime(absPath); 其中
我是一名优秀的程序员,十分优秀!