.:. 草榴社區 » 技術討論區 » 基于云函数 制作 v2ray 节点监测 自动复活机制
本頁主題: 基于云函数 制作 v2ray 节点监测 自动复活机制字體大小 寬屏顯示 只看樓主 最新點評 熱門評論 時間順序
爱自由


級別:精靈王 ( 12 )
發帖:1250
威望:909 點
金錢:1056 USD
貢獻:31448 點
註冊:2015-03-27

基于云函数 制作 v2ray 节点监测 自动复活机制

0. 前记
题主 v2ray 是购买的 aws lightsail 自己搭建的, 3.5 刀一个月.
但是时不时会抽风, ip 被和谐.
因此, 研究了下, 基于云函数制作了 定时监测 以及挂了自动刷新 ip 的脚本,
感觉不错, share 出来

1. 原理
整个流程, 比较简单.
首先云函数用的 阿里云的 python 允函数, 免费额度够用了,
其次监测 是 基于 v2ray 官方的 vmessping 工具实现的.
aws 的服务器有一点好的就是关闭后在启动, 服务区 ip 会变, 所以, 如果 ip 被墙, 重启换个 ip 就又复活了
这里我是每次服务器变更 ip 后, 自动把新 ip 指向我的域名, 我客户端也是直接使用的 域名.
所以当前 v2ray 服务端变更 ip 后, 手机/电脑上的 v2ray 客户端不需要做变更,也可正常使用
流程图 大概如下:

 

2. 具体实现
2.1 云函数
这里我用的阿里云的云函数, region 选的 北京,
必须选大陆的 region, 因为网络请求是在当前region下发起的, 如果选国外, 那么大概率你的梯子永远“健康”...
考虑到篇幅问题, 我把部分 refresh_ec2_ip 函数代码去掉了,其实就是调用 aws 官方接口把自己的实例, 关机在开机.
複製代碼
  1. # -*- coding: utf-8 -*-
  2. import logging
  3. import json
  4. import os
  5. import re
  6. regex = r"([0-9]+) requests made, ([0-9]+) success, total time ([0-9.]+)s"
  7. AWS_CONFIG = {
  8.     "aws_access_key_id": "xxxx",
  9.     "aws_secret_access_key": "xxxx",
  10.     "region_name": "ap-southeast-1",
  11.     "instanceName": "CentOS-1-V2ray",
  12. }
  13. LIGHTSAIL_CLIENT = boto3.client(
  14.     'lightsail',
  15.     aws_access_key_id=AWS_CONFIG['aws_access_key_id'],
  16.     aws_secret_access_key=AWS_CONFIG['aws_secret_access_key'],
  17.     region_name=AWS_CONFIG['region_name']
  18. )
  19. def get_instance_vmess():
  20.     item = LIGHTSAIL_CLIENT.get_instance(
  21.         instanceName=AWS_CONFIG.get('instanceName')
  22.     )
  23.     detail = {
  24.         "v": "2",
  25.         "ps": "爱自由",
  26.         "add": item['instance'].get('publicIpAddress'),
  27.         "port": 3306,
  28.         "id": "xxxx",
  29.         "aid": 2,
  30.         "net": "tcp",
  31.         "type": "none",
  32.         "host": "",
  33.         "path": "",
  34.         "tls": "none"
  35.     }
  36.     return detail, str(base64.b64encode(json.dumps(detail).encode('utf-8')), 'utf-8')
  37. def handler(event, context):
  38.   logger = logging.getLogger()
  39.   vmess = get_instance_vmess()
  40.   output = os.popen(f'/opt/python/vmessping_amd64_linux -c 3 {vmess}')
  41.   ping_resp = output.read()
  42.   matches = re.search(regex, ping_resp, re.MULTILINE)
  43.   matches.groups()
  44.   matches = re.finditer(regex, ping_resp, re.MULTILINE)
  45.   ping_result = matches.groups()
  46.   if groups[1]=='0':
  47.     refresh_ec2_ip(LIGHTSAIL_CLIENT)
  48.   return ''
複製代碼

2.2 云函数触发器
 

2.3 vmessping
vmessping 这个是 v2ray 官方二进制程序,  Github Release 页面下载后直接打包进函数代码即可:
用法 : vmessping 'vmess://ew0KI ...'
vmess:// 后面那一串是自己节点信息的json串, 然后执行 base64 得到的.
这个命令 监测返回格式如下:
複製代碼
3 requests made, 3 success, total time 2.618939579s

代表 ping 了 三次, 成功 三次, 耗时 2.61秒, 如果 成功数为0,则检测失败, 我们就可以执行服务器重启的业务逻辑了.
複製代碼
  1. Vmessping ver[v0.3.4], A prober for v2ray (v2ray-core: 4.23.2)
  2. Net: tcp
  3. Addr: xxx.xxx.xxx.xxx
  4. Port: 3306
  5. UUID: xxxx
  6. Type: none
  7. TLS: none
  8. PS: xxx
  9. Ping http://www.google.com/gen_204: seq=1 time=208 ms
  10. Ping http://www.google.com/gen_204: seq=2 time=235 ms
  11. Ping http://www.google.com/gen_204: seq=3 time=174 ms
  12. --- vmess ping statistics ---
  13. 3 requests made, 3 success, total time 2.618939579s
複製代碼


后记
关于 v2ray 的搭建, 其实下次也可出一片文章.
授人以鱼不如授人以渔




赞(40)
DMCA / ABUSE REPORT | TOP Posted: 08-26 21:14 發表評論
最爱咬


級別:新手上路 ( 8 )
發帖:716
威望:72 點
金錢:47900 USD
貢獻:0 點
註冊:2015-03-23

膜拜技术区大佬
TOP Posted: 08-26 21:16 #1樓 引用 | 點評
马勒逼船长


級別:俠客 ( 9 )
發帖:1017
威望:102 點
金錢:4603 USD
貢獻:0 點
註冊:2023-04-07

1024
TOP Posted: 08-26 21:29 #2樓 引用 | 點評
Loopll哼


級別:新手上路 ( 8 )
發帖:135
威望:34 點
金錢:10 USD
貢獻:0 點
註冊:2023-07-31

技术大佬在哪儿都值得赞👍🏻
TOP Posted: 08-26 21:32 #3樓 引用 | 點評
卡拉卡拉


級別:精靈王 ( 12 )
發帖:2288
威望:1505 點
金錢:10270 USD
貢獻:26100 點
註冊:2007-10-02

看不懂啊,纯支持。
TOP Posted: 08-26 21:42 #4樓 引用 | 點評
ygq1024


級別:新手上路 ( 8 )
發帖:166
威望:17 點
金錢:1351 USD
貢獻:0 點
註冊:2023-08-25

大佬厉害👍🏻,感谢分享
------------------------
1

TOP Posted: 08-26 21:52 #5樓 引用 | 點評
唯有淫心


級別:聖騎士 ( 11 )
發帖:8434
威望:915 點
金錢:61524 USD
貢獻:2637 點
註冊:2019-03-12

不懂,只知道厉害
TOP Posted: 08-26 21:53 #6樓 引用 | 點評
Gorgeoustar


級別:天使 ( 14 )
發帖:3587
威望:394 點
金錢:37623350 USD
貢獻:3000000 點
註冊:2014-06-05

不明觉厉
TOP Posted: 08-26 22:13 #7樓 引用 | 點評
十二次承诺


級別:風雲使者 ( 13 )
發帖:1867
威望:197 點
金錢:14671458 USD
貢獻:250616 點
註冊:2012-04-22

技术大佬
TOP Posted: 08-26 22:14 #8樓 引用 | 點評
特洛夫斯基


級別:精靈王 ( 12 )
發帖:16269
威望:1545 點
金錢:55660624 USD
貢獻:66666 點
註冊:2015-01-27

这是技术大佬
TOP Posted: 08-26 22:51 #9樓 引用 | 點評
潇洒在风尘间


級別:聖騎士 ( 11 )
發帖:6673
威望:859 點
金錢:22801 USD
貢獻:10 點
註冊:2023-03-15

程序看不懂,牛逼就行了
TOP Posted: 08-26 22:53 #10樓 引用 | 點評
笑春风多情


級別:聖騎士 ( 11 )
發帖:6888
威望:689 點
金錢:969001 USD
貢獻:2391 點
註冊:2015-12-26

完全看不懂
TOP Posted: 08-26 23:07 #11樓 引用 | 點評
天外非仙


級別:光明使者 ( 14 )
發帖:25611
威望:44827 點
金錢:46281 USD
貢獻:110606 點
註冊:2011-06-06
認證: 博彩區特使
2024-04-04

看不懂  但是就是觉得技术帝牛BPLUS
TOP Posted: 08-26 23:08 #12樓 引用 | 點評
电脑专家


級別:精靈王 ( 12 )
發帖:1347
威望:108 點
金錢:1391 USD
貢獻:56550 點
註冊:2014-08-25

好久没自己搭过梯子了,期待v2ray的帖子
TOP Posted: 08-26 23:12 #13樓 引用 | 點評
未完待续2014


級別:精靈王 ( 12 )
發帖:390
威望:60 點
金錢:113574620 USD
貢獻:100000 點
註冊:2014-04-30

这个可以的,谢谢分享,有空研究下!
TOP Posted: 08-26 23:30 #14樓 引用 | 點評
软件工程师


級別:精靈王 ( 12 )
發帖:6053
威望:2457 點
金錢:12128 USD
貢獻:13285 點
註冊:2022-09-08

鱼渔看不懂
------------------------
K

TOP Posted: 08-26 23:31 #15樓 引用 | 點評
李知恩


級別:精靈王 ( 12 )
發帖:1464
威望:1375 點
金錢:36734 USD
貢獻:22222 點
註冊:2021-06-10

支持技术分享
TOP Posted: 08-26 23:39 #16樓 引用 | 點評
多屏共享


級別:禁止發言 ( 8 )
發帖:420
威望:100 點
金錢:77 USD
貢獻:3398 點
註冊:2021-05-12

1024
TOP Posted: 08-27 00:05 #17樓 引用 | 點評
虛極靜篤


級別:俠客 ( 9 )
發帖:2215
威望:282 點
金錢:11597 USD
貢獻:0 點
註冊:2022-10-24

技术贴看不懂啊。
TOP Posted: 08-27 01:45 #18樓 引用 | 點評
美胸控


級別:聖騎士 ( 11 )
發帖:9818
威望:983 點
金錢:14380 USD
貢獻:0 點
註冊:2019-02-23

感谢楼主分享
TOP Posted: 08-27 05:23 #19樓 引用 | 點評
clarkechan


級別:騎士 ( 10 )
發帖:3351
威望:336 點
金錢:9003 USD
貢獻:0 點
註冊:2022-04-16

很有意思
TOP Posted: 08-27 05:25 #20樓 引用 | 點評
子树


級別:精靈王 ( 12 )
發帖:24198
威望:2470 點
金錢:34340 USD
貢獻:0 點
註冊:2022-11-15

感谢分享
TOP Posted: 08-27 06:46 #21樓 引用 | 點評
空耳君


級別:聖騎士 ( 11 )
發帖:3385
威望:334 點
金錢:5909 USD
貢獻:18797 點
註冊:2020-09-05

支持技术贴,技区发扬光大,做大做强!
TOP Posted: 08-27 07:07 #22樓 引用 | 點評
地狱猫


級別:俠客 ( 9 )
發帖:990
威望:100 點
金錢:867 USD
貢獻:0 點
註冊:2022-12-10

技术贴,需要支持
TOP Posted: 08-27 10:50 #23樓 引用 | 點評
玩切死哦


級別:禁止發言 ( 8 )
發帖:996
威望:100 點
金錢:2081 USD
貢獻:0 點
註冊:2023-05-20

1024.
TOP Posted: 08-27 17:20 #24樓 引用 | 點評
.:. 草榴社區 » 技術討論區

電腦版 手機版 客戶端 DMCA
用時 0.01(s) x2, 11-19 14:34