最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

来一打自建IP Proxy玩玩之Majora

来源:博客园

前言:为什么需要它~

IP代理那么多,其实大家很多时候图省事都直接采购了。


(资料图)

反正蛇鼠有路,也没什么需要讲的,大家看着玩就好。

但是有时候还是需要更可控或者更优质的资源,

可能就得看下自建方案了。

某些朋友可能有印象,很久之前我玩过这个项目:

李国宝:Echo:代理IP系统“4G新纪元”

只是....

后来项目停止更新了,

我自己这边的需求也不多了,

于是也没继续折腾了。

再然后,

后来看到了“新玩具”,

于是又折腾了一下...

新玩具是:

Majora-代理IP池建设系统​majora.iinti.cn/majora-doc
使用简单一键完成代理服务搭建,任意网络设备运行即加入代理ip服务,不需要复杂的组网络、网络拓扑配置、终端配置等。内嵌内网穿透,无论您的网络设备身在何处,只要可以上网即可提供代理IP资源多种网络终端支持pc(Windows、Linux、macOS),支持Android手机,支持路由器等网络设备,支持API集成到各种应用软件中管理和控制统一的后台系统、多用户体系、报表和用量控制、设备监控、设备状态查看、远程重播和控制、供应端和消费端计量等可靠和性能支持完整的http/https/socks5代理协议,支内存毫秒级别的失败隧道路由切换、异步NIO和内存复用,实现海量高吞吐带宽数据转发(已验证单台服务器200M带宽无性能问题)。

好像...

对内支持连接各种设备,

对外直接提供隧道代理。

讲得挺厉害的哦。

看看咋样~

服务起手

- 提前安装Docker

# 服务器: 安装dockeryum install -y docker# 服务器: 下载镜像: docker pull registry.cn-beijing.aliyuncs.com/iinti/common:majora-allInOne-latest# 服务器:启动majora服务器docker run -d -p 5876:5876 -p 5879:5879  -p 30000-30200:30000-30200 registry.cn-beijing.aliyuncs.com/iinti/common:majora-allInOne-latest# 安装和配置app(app为例)https://oss.iinti.cn/majora/majora-client-android.apk# 使用手机app的网络提供代理能力curl -x majora:arojam2021@majora.iinti.cn:30002 https://www.baidu.com/

注意端口开放:

Web管理后台: -p 5876:5876

客户端长链接端口: -p 5879:5879

默认对外暴露的代理端口: -p 30000-30200:30000-30200

具体相关配置见:application.properties

“初始化系统”

注册Admin用户

点击“立即注入”,系统首个注册用户默认就是Admin 用户。

设置 “代理账号密码”。

PS: 总不能是个人都能用吧?

安装配置App:Android客户端

嗯?安卓客户端是撒。

用人话来说,

就是把手机端作为代理出口。(4G、5G、WIFI....

很有趣的思路。

https://oss.iinti.cn/majora/majora-client-android.apk

下载安装。

默认配置是链接到 "majora.ihttp://inti.cn:5879",

这里需要改成自己的服务器IP+ 端口。

道理来说,到这里安卓App已经搞掂了。

这时候我们去 majora 管理后台看下。

设备ID:

unknown_69e9e9b8-2266-4ccf-bded-1d5cc44b0023

出口IP:

58.247.23.77 ( 联通5G)

测试代理功能

- 偷懒,这里用的是majora的测试服务器

curl -vvv -x majora:majora@majora.iinti.cn:30000 https://myip.ipip.net

测试结果

➜  ~ curl -vvv -x majora:majora@majora.iinti.cn:30000 https://myip.ipip.net*   Trying 61.174.243.41:30000...* Connected to majora.iinti.cn (61.174.243.41) port 30000 (#0)* allocate connect buffer* Establish HTTP proxy tunnel to myip.ipip.net:443* Proxy auth using Basic with user "majora"> CONNECT myip.ipip.net:443 HTTP/1.1> Host: myip.ipip.net:443> Proxy-Authorization: Basic bWFqb3JhOm1ham9yYQ==> User-Agent: curl/7.88.1> Proxy-Connection: Keep-Alive>< HTTP/1.1 200 Connection established< connection: keep-alive<* CONNECT phase completed* CONNECT tunnel established, response 200* ALPN: offers h2,http/1.1* (304) (OUT), TLS handshake, Client hello (1):*  CAfile: /etc/ssl/cert.pem*  CApath: none* (304) (IN), TLS handshake, Server hello (2):* (304) (IN), TLS handshake, Unknown (8):* (304) (IN), TLS handshake, Certificate (11):* (304) (IN), TLS handshake, CERT verify (15):* (304) (IN), TLS handshake, Finished (20):* (304) (OUT), TLS handshake, Finished (20):* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384* ALPN: server accepted http/1.1* Server certificate:*  subject: CN=*.ipip.net*  start date: Apr  5 00:00:00 2023 GMT*  expire date: Aug 24 23:59:59 2023 GMT*  subjectAltName: host "myip.ipip.net" matched cert"s "*.ipip.net"*  issuer: C=CN; O=TrustAsia Technologies, Inc.; OU=Domain Validated SSL; CN=TrustAsia TLS ECC CA*  SSL certificate verify ok.* using HTTP/1.1> GET / HTTP/1.1> Host: myip.ipip.net> User-Agent: curl/7.88.1> Accept: */*>< HTTP/1.1 200 OK< Date: Sat, 24 Jun 2023 04:39:07 GMT< Content-Type: text/plain; charset=utf-8< Content-Length: 67< Connection: keep-alive< Node: ipip-myip5< Strict-Transport-Security: max-age=0; preload< X-Cache: BYPASS< X-Request-Id: e46e9443a8becb0a15645e0da28cd366< Server: WAF< Connection: close< Accept-Ranges: bytes<当前 IP:58.247.23.77  来自于:中国 上海 上海  联通* Closing connection 0➜

到这里,

整个系统其实已经正常跑起来了。

其他客户端

当然,majora这边也是支持VPS Linux 和Windows 客户端,甚至也有路由器版本.

具体的配置过程可参考Majora 客户端:PC主机环境

下载地址:https://oss.iinti.cn/majora/bin/latest,

选择对应的系统版本,

点击下载或者复制对应的下载链接,

使用wget下载。

附加彩蛋一:App重播

使用shizuku实现免root的飞行模式重播 ->移动网络情况下获取新IP。

在使用Android收集作为majora客户端时,定时重播或者被业务管理的重播是比较重要的支持。在Android中重播即飞行模式的切换。 然而由于飞行模式切换是一个高阶权限,随着Android版本不同具备不同的行为拦截,故majora app目前只能在满足一些条件才可以执行飞行模式切换动作。

#Android各版本飞行模式约束和重播方案选定

  • 低版本(约小于Android5.0),使用广播命令重播,无限制
  • 中版本(约Android 5.0-9.0),重播广播将会被系统过滤拦截,除非广播发出者是root/system身份。
    • adb可以写settings,然而settings仅仅针对于系统的设置页面,并没有触发底层网卡重启流程,此时在app界面看到似乎飞行模式打开了,然而实际上并没有底层行为,重播不生效
    • 只能使用广播发起飞行模式,但是adb级别权限也会被系统拦截。故此时手机必须root才能重播
  • 高版本(大于10),此时使用cmd命令触发重播
    • root可能比较困难,但是支持adb权限
    • adb权限下,使用cmd connect 命令族完成重播

总结: 如果完成了root,那么均支持重播;

否则要么Android小于5.0,

要么大于10.0且借助shizuku提权到adb权限

附加彩蛋二:VPS 客户端重播脚本支持

-PC主机环境:0x01 拨号场景

# [必选] majora 服务端的地址,支持域名模式tunnel_addr: majora.iinti.cn:5879# [可选] 自定义的dns地址dns_server: 114.114.114.114:53# [可选] 日志级别 默认info,可选值(debug/info/warn/error)log_level: info# [可选] 日志路径log_dir: log# [可选] 日志文件名 log_file: majora.log# [可选] 连接重试间隔(重播或者服务端升级时,客户端自动重试的间隔)retry_duration: 30s# [可选] 自定义网卡, 用于多网卡模式下intface: en0# [可选] 重播配置 (vps拨号场景,用于换IP)redial:  # 重播的cmd   # unix/linux 下 /bin/bash   # windows 下 CMD  command: /bin/bash  # 重播的拨号执行脚本,一般对应的vps提供商会提供   exec_path: ppe_start.sh  # 重播的执行间隔   redial_duration: 10m# [可选] extra 配置 extra:  # [可选] 自定义当前节点的账号  account: majora

附加彩蛋三:Windows客户端

-PC主机环境:windows环境的启动和服务化

在windows环境下,如果将majora服务化,

则可以使得majora永久存活,并且开机自启动。

  • 资源下载:https://oss.iinti.cn/majora/majora-cli_windows_amd64.zipopen in new window
  • 原理:使用winswopen in new window将majora.exe 注册成Windows服务,
  • 同时winsw会配置开机自启动,以及实现故障自恢复、进程守护等。
./service.exe install./service.exe start;./service.exe status;

其他注意项

majora-allInOne-latest

-registry.cn-beijing.aliyuncs.com/iinti/common:majora-allInOne-latest

这个版本的镜像内置MySQL数据库,

切记请勿直接用于生产环境!!!

切记请勿直接用于生产环境!!!

切记请勿直接用于生产环境!!!

生产环境建议数据库和服务分离。

请参考:服务安装:docker compose或者服务安装:手动部署

务必设置代理账号密码

- 务必!!!

- 务必!!!

- 务必!!!

最后。

好好学习,

天天上网。

举头三尺有神明,

可不兴干坏事哈!

代码写得好,

牢饭吃到饱。

切记!

切记!

切记!

关键词: