一款开源网络转发、代理软件,解决跨网通信问题

一直比较懒,没有为开源事业做出过什么贡献,最近痛定思痛,写了一个开源软件,解决网络通信问题,附上github地址,供大家共同交流。
https://github.com/wsrf16/anchor

1.功能介绍

本软件针对跨区、跨网段等网络不通场景,或需要批量网络代理场景而开发,可实现:

  • 基于http协议的转发(正、反向代理)
  • 基于tcp协议的转发(正、反向代理)
  • 基于udp协议的转发(反向代理)
  • 基于socks5协议的代理
  • 基于ssh协议的转发以及建立隧道,可用于通过ssh协议中转的方式搭建ssh代理机或http代理机
  • 搭建http服务器,以http接口形式调用服务端shell脚本,或以服务器为中转机,访问远端ssh服务器
  • 以伪终端的形式,访问远程ssh服务器,类似putty、xshell等工具

2.示意图

在这里插入图片描述

3.启动方式

3.1 命令行模式

适用于单一端口转发,启动方式简单,无需额外配置,可以通过无参数方式执行,查看帮助:

Help you access the server efficientlyUsage:                                                                  anchor [flags]                                                        anchor [command]                                                      Available Commands:                                                     completion  Generate the autocompletion script for the specified shellhelp        Help about any command                                    http        Start a http server                                       server      Start a anchor server                                     socks       Start a socks server                                      ssh         Start a ssh server                                        ssh-pty     Login remote ssh                                          tcp         Start a tcp server                                        udp         Start a udp server                                        Flags:                                                                  -f, --forward string   <forward-address>                              -h, --help             help for anchor                                -l, --listen string    <listen-address>                               Use "anchor [command] --help" for more information about a command.

3.1.1 http转发

该类转发在应用层实现,仅适用于http协议,因为https需要证书。

·正向代理

# 将本机作为代理服务器。其他机器可以通过设置代理为192.168.0.100:8081访问其他网络(假设该服务器ip为192.168.0.100)
$ anchor http -l :8081

·反向代理

# 将本地8081端口接收到的http请求,转发到http://192.168.0.10:8081
$ anchor http -l :8081 -f http://192.168.0.10:8081

3.1.2 tcp转发

该类转发在会话层实现,支持http、https、ssh等大部分基于tcp的协议。

·正向代理

# 将本机作为代理服务器。其他机器可以通过设置代理为192.168.0.100:8081访问其他网络(假设该服务器ip为192.168.0.100)
$ anchor tcp -l :8081

·反向代理

# 将本地8081端口接收到的tcp请求,转发到192.168.0.10的8081端口
$ anchor tcp -l :8081 -f 192.168.0.10:8081

3.1.3 udp转发

该类转发在会话层实现,支持udp协议。

·反向代理

# 将本地8081端口接收到的udp请求,转发到192.168.0.10的8081端口
$ anchor udp -l :8081 -f 192.168.0.10:8081

3.1.4 socks代理

该类转发在会话层实现,支持http、https、ssh等大部分基于tcp的协议。

·正向代理

# 将本地8081端口接收到的tcp请求,转发到192.168.0.10的8081端口
$ anchor socks -l :8081 -f 192.168.0.10:8081

3.1.5 建立ssh隧道

3.1.6 搭建http服务器,以http形式执行shell或访问远程ssh

本模式由于参数较多,仅支持配置文件方式启动。

3.1.7 访问远程ssh服务器

$ ssh-pty 192.168.0.10 -u root -p 12345678

3.2 配置文件模式

以配置文件方式启动,一次启动同时支持多种转发方式,listen为本地监听地址(必填),forward为转发目标地址(非必填)。

# 启动服务
$ ./anchor server

$ cat config.yaml

tcp:- listen: :8081- listen: :8082forward: mecs.com:8080udp:- listen: :8083forward: localhost:8084socks:- listen: :1080http:- listen: :8087- listen: :8088forward: http://mecs.com:8080addedHead: test_headerssh:- listen: :8022forward: mecs.com:22httpserver:listen: :8080shell:enabled: truessh:- id: mecs.com:22addr: mecs.com:22user: rootpassword: 11privateKey: "-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEA5tm9KUtCqjSNMqZGENzyLYj5W/8fwghZVtta1CVv0ycgMW9GUKRnXkHR9mrUQ38W7JvMaY2G8Z5eijvIp20YtIe/jrvgs/ZWxmAZANz/CSTI5/Jt3ks33wGHRey/Rh3nM+CpfWyQkR34PVQP00A/L/9D5PuZ0kaU+mmt9am/iefouSJPuweo+jJaTMwZIaR5qbu+UOh/9FrvfCZQqBgslrIzVE37Lk58zCWRG9opY85RvQJrhQbyyYCSeKE/Pm+SqZO3ZXj4pvCH3YRSudW0sOLaiyro29I/Ttk0u3ATE3YnJu3tBSOI9WKJN259xXAZFJCYQeJIP74B8RSTpzDXVwIDAQABAoIBAQDU5nC/Gaqa7bpewNwTh0FOX2nhv0txrjN+mDSPPKuB6C6XiNEnZEf0tO1HvkRer2Hb+t+tZRnT0cPM5s/qIQJM1HkE0R6tuf1TXKMSmb4Xl7Y1u+45udMgNw+jnHDW4JMu0/5cLviw7RvYq6Mgp7resCPUlXnKZM/Wlgoaa1+7dMY+RGHLznWVaYAwdgvR5sjmtfobmrHaIt4Ee0XL7DdbtrLFhK2WVXyDlmB5Y/ji7UajRNTeZVEhihgUdBkTiyBMlJ8jA3sBG/7sEL+HS4WmjaoIh86wvUeh+Ue/R16p9CGfNS4QHocLM26qK3MwxOEb/il8un1/lOVBx7OWlYJZAoGBAO5URQSJsqCk2Dgitj+A3yPF650rsDsMhJcAoOtHPlwae/8RNh/9eNwqxPNrCqr+nbf4Eo22IxWmAUSRtq4NcWD0mhFyBb+MarD8P8NDByzllGlXAQokHK68KK6dmfnFMIa6seIJkQ2H0scP17GK/MWsjrKA6/+k4kuVwqLJkH2TAoGBAPf3hGb7M3BZqMWn/n6CWCyD3Jhtpfae9SZolTBrrC32uW+YxrLcJQcHQ4AqbYQihZapjnYUNUTB5ZpCB8Xt9vkmrJrkvvVmeonw8ebDNQbCHS0btU+06OBtwHahCj4mOLxIX4OtYKIoqyZzF1psPBP3i1jXmeA/3mpQM7TA+PmtAoGBAMq0mAM1Dt39dv2/4FyAwslNZInIh9qhWgCJA1U5wjtaN06JmAx7bRltsxgKWgd4CjNX5ofre0nFaNymRschHebGBGiEH4l8553i3mS4lNjF54X0/yhd8JtZ5Awodbbv1ccx8Wv8kQf+FvNCcUVLnpSOoMwIRTGpTuPU27fTUnbLAoGBANvRFxV3oGz7fmrh9vBNOj8UEc0qfpJ27ZnD4mVPPg5tBowQYiySjVyCqusGMZmOROB/pOO2HFa8kH7EBEIJJwRNrXuORl4jH4QDDV5lNC+uitC/HGbxV/QENzayofLgTTFT8yA25VA7PyXRpyUoh8Wnj2cNkcJCvDeAq6WT3+LtAoGAKHhFUXtSznBtajKaAc36rNR7V29/RctCTKWMHG9BrMXmrvOnuJw1r6/cWM1g7ez4qEsgzk0rRVRhsIoq01sXf4dc2N7Un2fgkmQOSqX7qqYBQgJUEFjBF4kdbHpJWTnF2l70iLkGIBu8Pxs7sUK658Q81iGJ/rvvaC8XAR5WM/M=-----END RSA PRIVATE KEY-----"

3.3 搭建http服务器

这里详细说一下搭建http服务器,以下配置内容说明:监听本地8080端口,客户端可访问本地8080端口执行shell命令,或通过该服务器访问其他ssh服务器执行shell命令。

除支持linux平台外,同时也支持windows平台的dos命令

3.3.1 第一步:搭建http服务器

httpserver:# 监听本地端口listen: :8080# 在服务器本地执行shell命令shell:enabled: true# 通过服务器连接其他ssh服务器执行shell命令ssh:# 自定义,用于标记该目标地址的唯一标识- id: 192.168.0.10:22# 目标服务器地址addr: 192.168.0.10:22# 登录该服务器的用户名user: root# 登录该服务器的密码password: 11# 也可配置私钥,与密码认证方式二选一即可privateKey: "-----BEGIN RSA PRIVATE KEY-----XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-----END RSA PRIVATE KEY-----"

3.3.2 远程调用ssh

经过以上配置后,可以通过调用以下http接口,ssh连接到id为“mecs.com:22”的机器上执行命令

$ curl -XPOST “http://localhost:8089/ssh” -H “Content-Type: applicaton/json” -d “{“commands”:[“whoami”, “aaaa”, “curl”],“serverId”:“mecs.com:22”}”
返回以下类似内容:

{"spanId": "02063545-70ca-11ed-8f4d-f018980ebd48","code": 0,"msg": "操作成功","data": {"results": [{"stdout": "root\n","stderr": ""},{"stdout": "bash: aaaa: command not found\n","stderr": "Process exited with status 127"},{"stdout": "curl: try 'curl --help' or 'curl --manual' for more information\n","stderr": "Process exited with status 2"}]},"dateTime": "2022-12-01T00:14:03.8019397+08:00","timestamp": 1669824843801
}

3.3.3 调用shell

也可在服务器本地执行shell命令,使用方法与ssh类似,此时无需指定serverId

$ curl -XPOST “http://localhost:8089/shell” -H “Content-Type: applicaton/json” -d “{“commands”:[“whoami”, “aaaa”, “curl”]}”

{"spanId": "96478563-70cb-11ed-86be-000c297d3626","code": 0,"msg": "操作成功","data": {"results": [{"stdout": "root\n","stderr": ""},{"stdout": "/bin/bash: aaaa: command not found\n","stderr": "exit status 127"},{"stdout": "curl: try 'curl --help' or 'curl --manual' for more information\n","stderr": "exit status 2"}]},"dateTime": "2022-12-01T00:25:22.032626684+08:00","timestamp": 1669825522032
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42964.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果AppleGPT要来了!市值猛增710亿美元

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【计算机视觉】微信交流群 白交 发自 凹非寺转载自&#xff1a;量子位&#xff08;QbitAI&#xff09; 苹果AppleGPT来了&#xff01; 彭博社爆料&#xff0c;公司正在创建自…

10大超好用ai软件,2023办公学习必备!

人工智能 (AI) 近年来取得了显着进步&#xff0c;并已成为科技行业的流行语。我们随时能看到大量个关人工智能工具的资讯&#xff0c;它有可能自动执行任务&#xff0c;节省时间并提高效率&#xff0c;使其成为企业的宝贵资产和平台。 随着人工智能的进步&#xff0c;旨在让企…

文心一言,站在奥林匹亚

1932年7月&#xff0c;在洛杉矶举办的第10届夏季奥林匹克运动会上&#xff0c;一个只有几人组成&#xff0c;运动员仅1人的代表团完成了注册参赛。他们经历了无尽的辗转波折&#xff0c;漫长的海上漂泊&#xff0c;最终来到了奥运赛场上&#xff0c;他们来自——中国。 来到赛场…

Google I/O 2023 全球开发者大会 Reveal Event

目录 When is Google I/O 2023? 谷歌 I/O 2023 是什么时候? Is Google I/O in person? 谷歌I/O是亲自吗?

王小川新AI公司浮出水面:成立「五季智能」,召集搜狗旧部,水下估值接近独角兽...

鱼羊 发自 凹非寺量子位 | 公众号 QbitAI 前搜狗CEO王小川的AI新公司&#xff0c;正式浮出水面。 公司名为五季智能。 企查查信息显示&#xff0c;公司股东为王小川和茹立云。 后者是王小川的老朋友&#xff0c;在搜狗创业初期就和王小川合作&#xff0c;并曾任搜狗COO&#xf…

AutoGPT的出现,会让程序员失业吗?

最近&#xff0c;一个叫AutoGPT的模型火了&#xff0c;在GitHub上线数周Star数就直线飙升。截至目前&#xff0c;AutoGPT的Star数已经达到87k&#xff0c;马上接近90k&#xff0c;超过了PyTorch的65k。 根据AutoGPT的命名&#xff0c;就可以发现其神奇之处在于“auto”&#x…

4月11号软件资讯更新合集......

跟 ChatGPT 聊天、需求润色优化&#xff0c;禅道 OpenAI 插件发布&#xff01; 禅道插件上新了&#xff0c;OpenAI 禅道集成&#xff0c;可提供神奇海螺聊天、需求润色功能。 神奇海螺 “章鱼哥&#xff0c;你为什么不问问神奇海螺呢&#xff1f;”—— 海绵宝宝 那么&…

ChatLaw团队招实习生啦!真格基金的创业、投资与AI详细指南;远程工作的8个安全法则;游戏开发者的数学教程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 北大 ChatLaw 团队招聘实习生&#xff0c;开放算法和前后端岗位 ChatLaw 是一个开源的中文法律大模型&#xff0c;由北京大学与北大-兔…

实现自动化部署前端项目,从安装Jenkins到部署完成的整体配置 --适合初学Jenkins、想实现或者学习自动化部署的同学,知识点比较全面,过程写的清晰

前言 一、什么是Jenkins 二、Jenkins安装配置 Linux环境安装JDK Linux环境安装Maven Linux安装Jenkins 启动Jenkins jenkins配置 配置汉化版的jenkins 安装gitHub插件 gitHub配置 jenkins的配置 jenkins的gitHub配置 jenkins的java环境配置 小总结 两种情况 第…

顶级数学家玩股票胜过巴菲特 被人建议改行(图)

曾获得世界数学界最高荣誉的西蒙斯&#xff0c;转做投资以后&#xff0c;比巴菲特做得还好 国庆长假之后&#xff0c;中国股民惊喜地发现&#xff0c;股市仿佛重新被唤醒一般&#xff0c;短短几日&#xff0c;股指势如破竹&#xff0c;数次高开高走。股市又开始火了&#xff0c…

【量化】用数据验证巴菲特推荐的指数定投的收益真相

作者&#xff1a;幻好 来源&#xff1a; 恒生LIGHT云社区 最近几年&#xff0c;越来越多的年轻人开始接触基金&#xff0c;购买基金定投理财&#xff0c;本文将通过数据验证指数定投是否真的有效。 背景简述 1993年巴菲特在《致投资者的信》中首次提到了他的建议&#xf…

评温斯坦的炒股书(非常重要,常看看)

http://blog.sina.com.cn/s/blog_674caeca0101dlgq.html 技术分析的经典书籍&#xff0c;就我个人的观点而言&#xff0c;技术分析书籍多数是浪费时间和误人子弟的&#xff0c;纯粹技术分析的书籍不可多读。但我现在要强烈推荐一本技术分析的经典书籍&#xff1a;《史丹温斯坦称…

股神巴菲特

股神巴菲特&#xff1a;5岁开始做生意&#xff0c;11岁开始炒股 沃伦巴菲特1930年出生在美国西部一个叫做奥马哈的小城。他出生的时候&#xff0c;正是家里最困难的几年。父亲霍华德巴菲特投资股票血本无归&#xff0c;家里生活非常拮据&#xff0c;为了省下一点咖啡钱&#xf…

四个参数秒懂巴菲特价值投资

目录 1 巴菲特价值投资三规则... 1 2 四项参数指标对应三条规则... 1 3 价值投资选股软件... 2 1 巴菲特价值投资三规则 要说炒股&#xff0c;那必须得说说炒股界的扛把子巴菲特&#xff0c;他的选股理论是价值投资。价值投资属于长期投资策略。价值投资理论是用一个便宜的…

Android 仿微信群聊组合头像

转载&#xff1a;http://blog.csdn.net/tiantianshangcha/article/details/9836809 大概原理是先设想一个要合成的图片的大小&#xff0c;然后根据要合成的图片的个数以及要展示的位置进行计算&#xff0c;生成坐标系的配置。 然后利用android的绘图把要合成的头像根据坐标系&a…

仿微信通过拍照、本地图片然后裁剪完美更换头像

其实更换头像这个功能是个老梗了&#xff0c;写的人也很多&#xff0c;但是我没有看见过特别让我满意的&#xff0c;没办法&#xff0c;只能自己搞了。这里面我只说难点吧&#xff0c;最后的会附上完整的代码。 这里面涉及到的功能有哪些呢&#xff1f; 大概有&#xff1a;拍…

android微信群聊功能,Android仿微信群聊头像效果

在网上找了些仿微信群聊头像的开源库后&#xff0c;发现没特别好用的&#xff0c;或者说满足我需求的&#xff0c;就只好在别人的基础上改了下&#xff0c;也就有了这样的自定义控件了&#xff0c;以此来实现微信群聊头像的效果&#xff0c;效果图如下所示&#xff1a; 主要实现…

android高仿微信UI点击头像显示大图片效果

用过微信的朋友朋友都见过微信中点击对方头像显示会加载大图&#xff0c;先贴两张图片说明下&#xff1a; 这种UI效果对用户的体验不错&#xff0c;今天突然有了灵感&#xff0c;试着去实现&#xff0c;结果就出来了。。 下面说说我的思路&#xff1a; 1.点击图片时跳转到另一…

Android高仿微信头像裁剪

最近公司的APP很多用户反应无法上传头像&#xff0c;于是打算修改原来头像裁剪的代码。参考微信、QQ、唱吧头像裁剪的操作&#xff0c;决定就仿微信头像裁剪来上传用户头像&#xff0c;在Android大神鸿洋的一篇高仿微信头像的博客(博客地址结尾会贴出来)的基础上加了一些代码&a…