otunnel 是一款对称的安全隧道工具。特点及优势:
单二进制程序:otunnel 为一个独立的二进制程序,可以作为 server 和 client 端。
支持多操作系统平台:支持GNU/Linux, Unix-like, Mac, Windows,其他如 ddwrt 等 arm 平台。
无需配置文件:命令行使用
对称设计:同时支持 正、反向代理(端口映射)
安全加密:支持 AES 对称加密
前提:
假设 server 的地址为 example.com
从 client 能访问 server ( client 与 server 无需在同一个网络 )
注意 提供不同的运行参数,otunnel 程序可以作为 server 角色或 client 角色
./otunnel listen :10000 -s longlongsecret
举例:将 client 可以访问的 192.168.1.3:22 映射到 server 上的 10022 端口:
./otunnel connect example.com:10000 \ -s longlongsecret \ -t 'r:192.168.1.3:22::10022'
现在访问 example.com:10022 即等于访问了 client 内网的 192.168.1.3:22
举例:假设 example.com 的 127.0.0.1 网络有 3128 端口(你懂的),在 client 执行:
./otunnel connect example.com:10000 \ -s longlongsecret \ -t 'f::20080:127.0.0.1:3128'
现在 client 上的任何程序访问 20080 等于访问了 example.com 上的本地 3128 端口。
-t
格式包含多个字段信息,以 :
隔开(为空的字段也不能省略:
)。
代理类型:本地地址:本地端口:远程地址:远程端口
字段 | 含义 |
---|---|
代理类型 | r 表示反向代理; f 表示正向代理 |
本地地址 | IP或域名 |
本地端口 | 整数 |
远程地址 | IP或域名 |
远程端口 | 整数 |
说明
本地地址
或 远程地址
如果为空,表示所有网口
otunnel 命令行可以包含多个 -t
选项,同时指定多条隧道规则
需求 内网机器没有公网IP,但是可以访问外网,现在需要从外网访问内网机器。 举例,在家里机器A访问公司内网机器B。 前提 需要一台有公网IP的服务器S做中转,这样就可以打通AB两端了。 A <---> S <---> B 环境 家中A机,Win10 服务器S,Ubuntu 16.04 LTS 64 bit,公网IP: 123.12.23.13 (举例而已),SSH 端口: 22 内网B机,Ubun
我有一个控制器,它在上接受一个名为的类。控制器方法看起来像这样: 第一控制器: 属性之一的类型为。 现在,我正在尝试添加某种包装器控制器(将在另一台服务器上运行),它也接受,并将请求转发给第一个控制器: 第二(包装)控制器: 当我向第一个控制器发送请求时: 无法写入JSON:找不到java类的序列化程序。伊奥。FileDescriptor,并且没有发现创建BeanSerializer的属性(为了避
并非您希望公开的所有服务都是基于HTTP或TLS的。 ngrok TCP隧道允许您公开通过TCP运行的任何联网服务。这通常用于公开SSH,游戏服务器,数据库等。启动TCP隧道很容易。 公开在端口1234上运行的基于TCP的服务 ngrok tcp 1234 例子 公开侦听默认端口的SSH服务器 ngrok tcp 22 暴露一个Postgres服务器侦听默认端口 ngrok tcp 5432 暴露
HTTPS隧道使用ngrok.com证书终止ngrok.com服务器上的所有TLS(SSL)流量。 对于生产级服务,您需要使用自己的TLS密钥和证书对您的隧道流量进行加密。 ngrok使这个特别容易与TLS隧道。 将TLS流量转发到端口443上的本地HTTPS服务器 ngrok tls -subdomain=encrypted 443 一旦你的隧道运行,尝试访问它与curl。 curl --ins
自定义子域名称 ngrok为它为您打开的HTTP隧道分配随机十六进制名称。 这对于一次性个人用途是可以的。 但是,如果您在黑客马拉松上显示URL或与第三方Webhook集成,则如果隧道名称更改或难以阅读,可能会令人沮丧。 您可以使用-subdomain开关为隧道URL指定自定义子域。 示例:打开具有子域“inconshreveable”的隧道 ngrok http -subdomain=incon
我想通过SSH隧道访问jupyter笔记本,并遵循以下方法 要总结-: 1.登录远程机器 2.在新航站楼: 3.然后转到浏览器,然后转到 现在我的问题是:我只能在两个步骤中访问远程机器 jupyter笔记本电脑只安装在我的电脑上。 当我用较长的登录过程替换第一步的第一行时,第二步应该写什么? 当我插入remote_user=username和remote_user=my_pc_name时,我从ju
我不确定这是否是由端口转发使用私钥而不是密码造成的,但下面是我正在尝试做的 我需要将本地端口3308一直转发到位于3306的my SQL DB。 我可以在我的本地终端上一起运行这样的事情 我在JSch或端口转发方面做错了什么吗?