迅雷赚钱宝二代,矿渣复活记,它几乎是市面上最便宜的4核armbian Linux低功耗设备硬件了2022-2-14

前缀、文档修改记录

20220214 初始化编辑此文章,完稿
20240507 更新一下文章,整体过程汇总

迅雷赚钱宝二代,这个设备,ARM架构的,性能很有限,不过现在有大神做好了相关的固件,买了一跟USB公对公的线回来,就可以愉快的折腾了。

设备清单

1、 赚钱宝二代(型号WS1508)的设备,含电源线。配置参数为1个ARM核心(1.5GHz ARM Cortex-A5 四核处理器),512MB DDR3内存,USB2.0接口,100Mbps网口。ARMv7

2、USB公对公线,一根,淘宝价格3.9元

3、网线一根

4、恩山论坛大佬的固件,及配套的USB烧录软件

第一章,下载armbian固件及配套软件

恩山的原帖地址 https://www.right.com.cn/forum/thread-4137698-1-1.html

原作者禁止其他人转载刷机包到其他地方,各位可以从上面的原贴去下载,支持一下。

第二章,安装工具,刷设备固件

安装usb_burning_tool,这个就是普通的Windows软件安装,基本一路下一步就行。

打开usb_burning_tool这个软件。

用USB公对公的线,连接电脑的USB口和赚钱宝的USB口,长按住复位,插上赚钱宝二代的电源,直到usb_burning_tool工具上,显示连接成功。

点击菜单的IMG导入,把那个镜像导入,点击开始刷ROM。

等待大概2分多钟,等进度条绿色,就OKAY了。

第三章,设备的初始化配置

刷完把电源和USB线拔掉,然后插电开机,等一会儿,然后在路由器里找设备IP,我这里这次主机名是aml,IP地址是10.11.0.115

SSH会话,登录,初始root密码为1234,进去后请按照提示修改密码

调整扩充根目录空间大小,充分利用磁盘的4GB容量,执行

resize2fs /dev/data

手动设置一次日期与时间:执行 date -s 2021-xx-xx,把日期提前一天!如果今天是2021-10-10,那就设置2021-10-11

date -s 2022-02-14

安装ntp自动校时服务:执行 apt-get install ntp,稍后可能要确认一下输入y。

apt-get install ntp

整体过程整理出来,如下

整理了一下过程,大概如下: Dasmz 2024-05-07

初始默认密码 1234
date -s 2024-05-07
resize2fs /dev/data
apt update
apt-get install ntp
systemctl enable ntp
dpkg-reconfigure tzdata
apt-get install iptables iptables-persistent
echo "S0FC107092" > /etc/hostname
chattr +i /etc/hostname
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
apt-get install vim gcc make curl wget

完工

预览图

Ubuntu/Debian/Raspberry环境上,配置samba服务 20230309

前缀、文档修改记录

20230309 初始化编辑此文章,完稿
20240520 更新,增补iOS环境下,文件连接samba出现错误代码100093的问题

需求描述:

在我的那台树莓派设备系统上,系统为Raspbian,安装samba服务,非常给力,好用。

而且,现在市面上多数的安卓智能电视,电视盒子,都支持samba,可以直接在家里通过该协议观看samba服务里的影视剧集。

推荐,仅在局域网环境下使用samba服务。在公网使用,性能差,且安全风险高。

20220420,文档更新校正,完善内容,增加samba多目录,samba权限控制,账号。

20230309,文档更新内容,增加Linux命令行下如何挂载samba卷。

第一章,服务器,SAMBA安装,过程非常简单

root@server:~# apt-get update
root@server:~# apt-get install samba

第二章,配置

先停止安装后自动开启的samba服务,然后修改配置文件

root@server:~# systemctl stop smbd

假设如下的几个是我的分享目录,创建几个目录

mkdir -p /media/HDD1TB/downloads /media/HDD1TB/ingDowns /media/HDD1TB/TVSHOW

为samba配置一个普通的用户,名字为fd

root@server:~# mkdir -p /home/fd
root@server:~# useradd -U -s '/bin/bash' -d '/home/fd' fd
root@server:~# chown -R fd:fd /home/fd
root@server:~# passwd fd  
root@server:~# chown -R fd:fd /media/HDD1TB/
root@server:~# chmod 777 /media/HDD1TB

root@server:~# usermod -aG fd debian-transmission # 我下载BT到这个目录,所以,把BT用户归纳到fd组

root@server:~# 
root@server:~# smbpasswd -a fd     # 增加samba用户 
root@server:~# smbpasswd -a root   # 增加samba用户
root@server:~# smbpasswd -x fd     # 删除samba用户,新建时,无需执行
root@server:~# smbpasswd -x root   # 删除samba用户,新建时,无需执行

修改配置文件 /etc/samba/smb.conf

// 配置的逻辑为, /media/HDD1TB这个目录root用户可以全部访问,而用户fd只能访问其中的子目录/media/HDD1TB/TVSHOW

[MULTI_SHARE]
comment = Multi Media Files Share
path = /media/HDD1TB
browseable = yes
valid users = root
force group = root
create mask = 0660
directory mask = 0771
writable = yes
read only = no
guest ok = no

[TV]
comment = TV SHOW ACCESS
path = /media/HDD1TB/TVSHOW
browseable = yes
valid users = fd
force group = fd
create mask = 0660
directory mask = 0771
writable = yes
read only = no
guest ok = no
// 查看SAMBA服务器上的版本
root@server:~# samba --version
Version 4.9.5-Debian
root@server:~#

// 查看当前SAMBA服务器的运行情况
root@server:~# smbstatus

root@VMSMB:~# smbstatus -p

Samba version 4.9.5-Debian
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
----------------------------------------------------------------------------------------------------------------------------------------
1799    nobody       nogroup      Dell (ipv4:10.11.11.179:54212)       NT1               -                    -                    
1142    fd           fd           10.11.11.179 (ipv4:10.11.11.179:5029)     SMB3_11           -                    partial(AES-128-CMAC)
1985    fd           fd           10.11.11.179 (ipv4:10.11.11.179:38794)    SMB3_11           -                    partial(AES-128-CMAC)
参数
MULTI_SHARE,TV 这些是你自定义的服务项的名称,后面客户端访问时候需要
comment 一些用于提醒的消息,这个一般都是配置提示
path 需要分享的目录
browseable 默认为yes,一般不需要修改

第三章,重启samba服务

root@server:~# systemctl restart smbd

第四章,客户端访问

1、Linux桌面环境

smb://ipaddress/MULTI_SHARE    # 如果用root访问

smb://ipaddress/TV   # 如果用普通用户fd访问

2、Windows桌面环境

\\ip-address\MULTI_SHARE

3、iOS环境访问

苹果系统, 文件, 右上方三个圆点, 连接服务器(如果没有出现连接服务器,则你的iOS系统版本太旧了,请先升级系统)。
服务器栏目填入  smb://ip-address
注册用户
名称填入 有效的samba用户名
密码填入 有效的对应samba账号密码

若此苹果系统的文件,连接SAMBA,出现错误代码 100093的情况(SAMBA版本 4.13.13,iOS版本16.3)

修改配置文件

在[global]这个标签下方新建一行内容,内容为:

   vfs objects = fruit streams_xattr

修改完的样子如图,重启smbd服务即可。

第五章,客户端访问,Linux的Shell 命令行环境

// 安装 smbclient 功能组件
# apt install smbclient

// 查看确认SAMBA服务器信息
# smbclient -L //SAMBA-SERVER-IP

// 安装cifs-utils 功能组件
// 支持的协议版本
// SMB 1
// SMB 2.0
// SMB 2.1
// SMB 3.0 带加密
# apt install cifs-utils

// 创建需要的挂载目录,并给到充足的读写权限,本地挂载目录,假设为 /SAMBA
# mkdir /SAMBA
# chmod 777 /SAMBA

// 执行挂载操作
// 参数 serverUserName SAMBA用户
// 参数 myServerIpAdress SAMBA服务地址
// 参数 sharename SAMBA服务配置的[MULTI_SHARE]分享名称
// 参数 /mnt/myFolder/  本地挂载目录,假设为 /SAMBA
# mount -t cifs -o username=serverUserName //myServerIpAdress/sharename /mnt/myFolder/
# mount -t cifs -o vers=3.0,username=fd,password=PassValid  //10.11.11.200/SD /SAMBA        




// 可选,增加一个用户名,密码的文件,共mount调用
// 参数 credentials=/path/samba/smb.token
// username=fd
// password=PassValid
// domain=WORKGROUP
# chmod 600 /path/samba/smb.token
# mount -t cifs -o credentials=./smb.token  //10.11.11.200/SD /SAMBA        

附录1、参考文档

https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

https://ubuntu.com/tutorials/install-and-configure-samba#4-setting-up-user-accounts-and-connecting-to-share

视频文件的目录索引 更新到2022-11-20

000001. 浏览器安装SwitchyOmega插件 让浏览器流量全部走该插件 2021-9-27.mp4                                                                       
000002. 通过Windows平台的V2rayN客户端,测试v2ray节点速度 2021-9-29-v2.0.mp4                                                                 
000003. 在服务器上安装部署shadowsocks-libev服务端 2021-10-8.mp4                                                                          
000004. SSH连接海外服务器非常卡,来吧,最简单的使用中转拯救你自己买的龟速的海外服务器的攻略 幼儿园篇 2021-10-13.mp4                                         
000005. 基于Nginx做一个WEB服务器,做一个供测速用的HTTP链接文件,测速文件的大小可以自己定义 20211013.mp4                                                         
000006. Netch客户端的进程模式,给Windows系统下的软件,给Xshell7进行进程级别的代理,类似手机APP的分应用代理 20211020.mp4                                           
000007. Netch客户端的进程模式,给Windows系统下的谷歌地球Google Earth Pro进行单应用加速,不会影响到其他软件 20211020.mp4                                         
000008. 在海外Linux服务器上安装部署自己的shadowsocks节点,必学必会的基础教程 20211021.mp4                                                              
000009. 更优雅的白嫖免费节点,V2Ray和Shadowsocks双层隧道,稳稳过墙,兼顾速度和隐私安全 20211021.mp4                                                         
000009. 更优雅的白嫖免费节点,V2Ray和Shadowsocks双层隧道,稳稳过墙,兼顾速度和隐私安全 20211021v2.0.mp4                                                     
000010. 最简单的方式,创建一个带用户名密码的socks5代理,幼儿园级别的篇章 20211025.mp4                                                                     
000012. 谷歌浏览器插件,Cookie AutoDelete,浏览器隐私保护的利器,建议时常清理浏览器的cookie  20211027v2.mp4                                                
000013. 网络基础,从零开始,构建自己的HTTP,HTTP,SSOCKS4,SOCKS5的通用代理池项目,第A-01篇,架构设计  20211027.mp4                                            
000014. 通用代理池项目,第A-02篇,出师不利,买服务器VPS做数据库,遇到被墙的IP,介绍简单的被墙服务器的连接和初始化.mp4                                   
000015. 通用代理池项目,第A-03篇,活学活用,买服务器VPS做数据库,遇到被墙的IP,简单介绍服务器的IPv6的SSH连接 20211031.mp4                                     
000016. 通用代理池项目,第A-04篇,Debian系统上的PostgreSQL数据库安装 20211101.mp4                                                                
000017. 通用代理池项目,第A-05篇,数据库核心数据表的设计,构建-1 20211101.mp4                                                                         
000017. 通用代理池项目,第A-05篇,数据库核心数据表的设计,构建-2 20211101.mp4                                                                         
000018. 通用代理池项目,第A-06篇,数据库数据表的解耦设计 20211101.mp4                                                                              
000019. 通用代理池项目,第A-07篇,重新买一个VPS服务器 20211102.mp4                                                                              
000020. 特别篇章,闲聊,下班时间,魔都地铁,众众众众众众众我众众众众众 20211104.mp4                                                                         
000021. 通用代理池项目,第A-08篇,PostgreSQL,解耦后的数据表重建 20211107.mp4                                                                     
000022. 通用代理池项目,第A-09篇,采集模块,环境构建,Debian 10系统下Python3,pip3和selenium安装 20211107.mp4                                            
000023. 通用代理池项目,第A-10篇,采集模块的构建,Debian 10系统下Chrome以及Chrome Driver安装 20211108.mp4                                              
000024. 通用代理池项目,第A-11篇,采集模块,采集一个静态类型的网页 20211114.mp4                                                                         
000025. 通用代理池项目,第A-12篇,Windows 10平台安装Python 3.10 20211114.mp4                                                                
000026. 通用代理池项目,第A-13篇,Windows本地到远程Linux系统的文件传输,Windows 10安装winscp,且让Winscp走V2ray线路进行加速 20211115.mp4                         
000027. 通用代理池项目,第A-14篇,采集模块,采集freeproxy这个网站的数据 20211116.mp4                                                                  
000028. 通用代理池项目,第A-15篇,采集模块,代码,解耦合,模块化,上篇 20211116.mp4                                                                       
000028. 通用代理池项目,第A-15篇,采集模块,代码,解耦合,模块化,下篇 20211116.mp4                                                                       
000029. 通用代理池项目,第A-16篇,闲聊,提前来看看完成品的通用代理池的样子 20211118.mp4                                                                     
000030. 通用代理池项目,第A-17篇,采集模块,采集freeproxy网站的页码处理 20211121.mp4                                                                  
000031. 通用代理池项目,第A-18篇,采集模块,Python3,到PostgreSQL数据库的连接 20211121.mp4                                                           
000032. 通用代理池项目,第A-19篇,检测模块,一个通用代理的检测可用的方式 20211125.mp4                                                                      
                                                            
                                                                                                                                                                   

000033 TikTok收看的技术指南,规则清单,收看TikTok的必备技术教程 20211201

000034 云VPS安装Windows,将一个Linux系统的主机,通过dd方式,安装为Windows系统的技术实践 20211202

000035 TikTok 无水印,高清视频下载,简单易用的一个方式 20211205

000036 安卓Android高效的开源投屏工具,scrcpy,使用介绍 20211207

000037 卡哇伊,轻松将你的自拍照片转化为卡通风格的画作 20211208

000038 简洁的在线绘图网站tldraw功能尝鲜介绍 20211212

000039 冷门的隧道协议PingTunnel概览,配置简单,可用于过市面上绝大部分的硬件防火墙 20211212

000040 隧道协议PingTunnel的安卓SagerNet配置,失败,需要root权限,本视频翻车 20211212

000041 Windows环境上使用Nginx 1.20.2最新稳定版本,做一个文件服务器 20211213

000042 迅雷极速版本1.0.35.366,No迅雷广告,正确安装的姿势方法 20211213

000043 国行安卓Android设备,收看TikTok技术指南 20211214

000044 iPad设备上TikTok收看的技术指南 20211215

000045 轻松获取土耳其或其他任意地区的IP地址,巧用双层隧道,注册土耳其区域的Netflix 2021-12-16

000046 脱离红尘,专注工作,Chrome浏览器的文本模式插件,TEXT MODE尝鲜使用 20211219

000047 多么痛的领悟,防止社会性死亡,务必关闭Windows资源管理器的最近打开选项 20211220

000048 苹果iOS,Shadowrocket支持的链式转发,Relay协议预览 20211222 (本期配置错误,请看84期视频)

000049 Linux环境的Bench脚本,测量Linux服务器的配置规格,内存大小,读写性能 20211223

000050 国行安卓Android手机,TikTok视频,支持无水印下载的软件,SnapTik功能验证实测 20211223

000051 基于Debian 10平台的docker-ce安装和使用 20211226

000052 基于apt包管理的走代理update的方式,实现快速apt update和安装docker-ce 20211226

000053 TikTok 注册使用的一些小注意点 20211227

000054 遁甲利器,proxychains4 链式工具,让终端里面的命令或程序畅享隧道 20211228

000055 节点测速,订阅测速,Win平台Stairspeedtest reborn的使用及进阶设置 20211229

000056 玩转树莓派Raspberry,镜像写入,在Windows平台的操作演示 2022-01-04

000057. 你2022开年修V2ray梯子么,VMess MD5 认证信息 淘汰机制,影响及解决办法 2022-1-6.mp4

000058. 配置树莓派2 Raspberry 2 Model B V1.1 2014从USB启动 boot startup的SSD固态硬盘启动 2022-1-9

000059. 玩转订阅地址转换神器 subconverter,基础设置及订阅转换API接口的使用 2022-1-11

000060. 玩转订阅地址转换神器 subconverter,修改端口设置及TikTok规则适配 2022-1-12

000061. 玩转订阅地址转换神器 subconverter,编译项目,适配Clash v1.9.0内核的更新 2022-1-15

000062. 记录一次树莓派Raspberry频繁重启reboot的故障,及处理方式 2022-1-16

000063. 开源下载工具Hitomi-Downloader,开箱使用介绍 2022-1-17

000064. 超低功耗树莓派2上搭建开源下载工具Transmission 2022-1-17

000065. 玩转订阅地址转换神器 subconverter,含前端,完整的搭建过程 2022-1-23

000066. 玩转树莓派Raspberry,超低功耗的家庭媒体文件中心,安装proxychains4.16工具 2022-1-25

000067. 玩转树莓派Raspberry,超低功耗的家庭媒体文件中心,安装docker-ce环境 2022-1-25

000068. V2Ray和socks5双层隧道,出国回国都可以,兼顾速度和隐私安全的玩法 20220206

000069. 开源下载工具Hitomi-Downloader,返场答疑 20220206

000070. iperf3测速工具,简单教学,可供测局域网,路由器性能,接入网汇聚性能 20220207

000071. ipip点net,查询IP地址归属信息,访问频次被限制问题 20220208

000072. 玩转树莓派Raspberry,配置SAMBA服务,含后续的Windows 10计算机、苹果手机访问树莓派SMB体验 20220210

000073. 玩转树莓派Raspberry,配置Nextcloud服务,含外部存储配置,浏览器访问Nextcloud体验 20220213

000074. 迅雷赚钱宝二代,矿渣复活记,它几乎是市面上最便宜的4核armbian Linux低功耗设备硬件了 2022-2-14

000075. 制作获取当前设备公网地址IP的API接口,基于FLASK实现的栗子 2022-2-16

000076. 建站云服务器的网络状况评估,全国或全球多地ping工具介绍 2022-2-17

000077. 冷门的隧道协议PingTunnel进阶配置,第一课,增加ping tunnel客户端国内云VPS入口服务器 2022-02-21

000078. 冷门的隧道协议PingTunnel进阶配置,第二课,增加iptables双端限速 2022-02-27

000079. 基于sjlleo的netflix-verify,检测VPS服务器IP地址或节点IP是否支持Netflix流媒体 2022-2-28

000080. 系统环境Ubuntu 20.04或者Debian 10,安装MySQL 8.0.28数据库 2022-03-01

000081. 基于双栈服务器的原生IPv6地址,解锁当地Netflix HBO等流媒体 2022-03-03

000082. 推荐两个不错的dd系统镜像的直链下载源网站 2022-03-08

000083 全球最大的数字图书馆,Z-library介绍,下载图书的好去处 2022-03-12

000084 苹果iOS的Shadowrocket的Relay协议节点配置,纠正48期的错误 2022-3-14

000085 苹果iOS,Shadowrocket进阶,基于小火箭自定义规则,配置广告拦截或者IP拦截 20220317

000086 Firefox,火狐浏览器,安装adblock或ublock广告拦截插件的问题 2022-3-21

000087 配置基于IPv6优先的Shadowsocks-libev,可供流量落地,解锁流媒体的需求 20220327 对应博客地址 https://dasmz.com/?p=1804

000088 基于aircrack-ng跑无线信号WIFI的握手包密码,可无需字典文件 2022-4-1

000088 本期博客地址 https://dasmz.com/?p=1749

000088 本期视频地址 https://youtu.be/xFrSVniOJkQ

000089. 云平台,虚拟化,Proxmox VE基础入门 2022-4-6

本期博客地址 https://dasmz.com/?p=1869
本期视频地址 https://youtu.be/Ljy3qvtFzgo

000090 编译安装shadowsocks-libev 3.3.5,Mbed-TLS 2.28.0,libsodium 1.0.18 20220416

本期博客地址 https://dasmz.com/?p=1845
本期视频地址 https://youtu.be/UKhBQxh72rg

000091 基于v2ray使用其他Shadowsocks服务器的IP为落地 20220417

本期博客地址 https://dasmz.com/?p=2017
本期视频地址 https://youtu.be/-_erDVvCEI0

000092 常见文件传输协议介绍,及samba配置进阶,分用户分目录权限 20220421

本期博客地址 https://dasmz.com/?p=1347
本期视频地址 https://youtu.be/tA1nKJAsVfo

000093 聊聊微博知乎今日头条小红书,显IP归属地的事,及如何更改IP地址 20220430

本期博客地址 https://dasmz.com/?p=2185

本期视频地址 https://youtu.be/8XyXYZMRk3Y

000094 技术篇章,微博知乎今日头条小红书抖音等显IP归属地的事,如何更改IP地址 20220430

本期视频地址 https://youtu.be/iq9xiz64QvY

000095 基于Docker部署的Nextcloud,缺失视频的缩略图封面的解决方法 20220504

本期博客地址 https://dasmz.com/?p=2203
本期视频地址 https://youtu.be/DceuugvA4GQ

000096 专题技术篇,微博知乎今日头条小红书抖音等显IP归属,人在国内,需更改IP到其他省份 20220508

本期博客地址 https://dasmz.com/?p=2185
本期视频地址 https://youtu.be/h3IaGlf-ufQ

000097 Linux低功耗环境,基于Youtube-dl下载Youtube的视频列表 20220514

本期博客地址 https://dasmz.com/?p=2317
本期视频地址 https://youtu.be/SS9txQOs8jI

000098 Windows环境,基于命令行的方式,yt-dlp工具,下载YoutubeTwitterTikTok视频 20220528

本期博客地址 https://dasmz.com/?p=2367
本期视频地址 https://youtu.be/miMJ9_MzbT4

000099 家长必看,孩子上网课的Windows电脑,权限设置及网站拦截配置 20220604

本期博客地址 https://dasmz.com/?p=2387
本期视频地址 https://youtu.be/urDMCKfkP_k

000100 批量下载Twitter高清大图的重要工具,谷歌浏览器扩展Fatkun Batch Download Image 20220614

本期博客地址 https://dasmz.com/?p=2414
本期视频地址 https://youtu.be/iDtt4eTrbBk

000101 [闲聊话题] 关于 提示存在通过技术手段使其成为跨境节点等行为 2022-6-18

本期博客地址 https://dasmz.com/?p=2423
本期视频地址 https://youtu.be/jWNtqHUIfH0

000102 NFS 文件存储,安装配置使用,为Linux服务器/Docker容器提供持续化的文件存储 2022-6-25

本期博客地址 https://dasmz.com/?p=2515
本期视频地址 https://youtu.be/BRGHQsleQYs

000103 基于frp,配置内网映射,示例映射内网Windows远程桌面,方便公网访问 2022-7-3

本期博客地址 https://dasmz.com/?p=2551
本期视频地址 https://youtu.be/jt9xUVWZrzU

000104 基于winsw,配置软件应用为windows的服务,方便开机启动,及服务管理 2022-7-10

本期博客地址 https://dasmz.com/?p=2580
本期视频地址 https://youtu.be/SYEFAk1Z7aw

000105 抖音IP归属,专栏,含修改IP归属的成功视频演示 20220717

本期博客地址 https://dasmz.com/?p=2185
本期视频地址 https://youtu.be/WwQV5ObZEJY

000106 基于商用的no-ip,免费稳定的DDNS 配置方案 2022-7-25

本期博客地址 https://dasmz.com/?p=2616
本期视频地址 https://youtu.be/OMWQf27Wf9E

000107 纯内网环境下,Windows系统的激活问题,搭建内网KMS服务器 2022-8-1

本期博客地址 https://dasmz.com/?p=2633
本期视频地址 https://youtu.be/BWmgr0MvMSo

000108 硬盘文件系统损坏,快速格式化,误删文件情景下的数据恢复 2022-8-7

本期博客地址 https://dasmz.com/?p=2661
本期视频地址 https://youtu.be/s4cIBF4BIkY

000109 苹果iOS投屏到Windows电脑,可供操作苹果iOS设备的演示,或者手机游戏直播 2022-8-17

本期博客地址 https://dasmz.com/?p=2705
本期视频地址 https://youtu.be/_CvbHQEX6uo

000010 安装Windows,再也不愁缺少驱动器的设备驱动程序,基于微PE制作系统安装工具盘 2022-8-25

本期博客地址 https://dasmz.com/?p=2725
本期视频地址 https://youtu.be/ywFulH1ic58

000111 API接口,检测IP代理,透明代理是否可用的API接口,完成发布 2022-9-2

本期博客地址 https://dasmz.com/?p=2736
本期视频地址 https://youtu.be/yWTZ0SupwSo

000112 搭建自己的speedtest测速网页,测试WIFI6路由器性能 2022-9-17

本期博客地址 https://dasmz.com/?p=2753
本期视频地址 https://youtu.be/To8jsW8LhJA

000113 海外住宅IP代理,购买使用教程指南 2022-9-25

本期博客地址 https://dasmz.com/?p=2795
本期视频地址 https://youtu.be/3GCOTwLZr_U

000114 Windows平台,键盘按键实时显示工具 keyviz 简单易用 2022-10-18

本期博客地址 https://dasmz.com/?p=2826
本期视频地址 https://youtu.be/fc9fHENV_yk

000115 常见Linux发行版本,开云主机的时候,系统选择 2022-10-30

本期博客地址 https://dasmz.com/?p=2861
本期视频地址 https://youtu.be/rthJwTcCp0A

000116 前缀长度64的公网IPv6地址,给Ubuntu服务器增加公网IPv6地址 2022-11-09

本期博客地址 https://dasmz.com/?p=2879
本期视频地址 https://youtu.be/v7_vynGTNAo

000117 免输入密码,使用私钥方式SSH登录Linux服务器 2022-11-20

本期博客地址 https://dasmz.com/?p=2898
本期视频地址 https://youtu.be/d9y9Kxl-4G0

000118 苹果iOS,Shadowrocket进阶,基于小火箭自定义规则,配置微信直连规则,微信规则 2022-12-04

本期博客地址 https://dasmz.com/?p=2961
本期视频地址 https://youtu.be/RafbGW33JuI

000119 注册美区APPID操作指南 2022-12-10

本期博客地址 https://dasmz.com/?p=381
本期视频地址 https://youtu.be/l9-J1haORg0

视频(总)

https://www.youtube.com/channel/UCWONy0Gob2eCk9XEBM07kmA/videos

iperf3 简单实用的测速工具 使用介绍 2022-2-7

官网地址 https://iperf.fr/
下载地址 https://iperf.fr/iperf-download.php

第一章,简介

iPerf - The ultimate speed test tool for TCP, UDP and SCTP

正如其官网描述的,它是一个支持TCP/UDP/SCTP的测速工具,简单实用

第二章,安装

官网有各平台的安装介绍,我这里主要介绍一下2个windows/Linux/Android/iOS这四个常用平台的安装

Ubuntu/Debian/树莓派Raspbian 安装 
apt-get -y install iperf3

CentOS安装
yum -y install iperf3
Windows 10下载解压后,可见两个文件cygwin1.dll和iperf3.exe,在该目录下,按住Shift,右击鼠标,选择从此处打开powershell

第三章,执行

在存放视频文件的树莓派上,开启服务端  
/usr/bin/iperf3 -s -p 11111

参数释义 -s 参数表示服务器端,-p 指定使用端口
台式机电脑Windows的Powershell里面客户端  
iperf3.exe -c 10.11.11.114 -p 11111 -t 12 -R

参数释义 -c 参数表示客户端并指定测速服务器地址,-p 指定服务器端口,-t 指定测试时长(单位秒),-R 表示下载测速(不加参数则测试上传速度)。

如果要测试 UDP 连接,追加 -u 参数和-b带宽参数

附录

# 如果Ubuntu/Debian安装最新版本的,或其他Linux发行版本,则需要从官网下载安装

apt update
apt remove iperf3 libiperf0
apt install libsctp1
cd /root/src
wget https://iperf.fr/download/ubuntu/libiperf0_3.9-1_amd64.deb
wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_amd64.deb
dpkg -i libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb

完整的搭建Subconverter前端,后端的过程 2022-1-23

本次环境,使用美国的VPS,配置为1C 1GB 15GB-SSD 500Mbps,操作系统为Ubuntu 20.04 LTS

第一章 安装更新

root@server:~# apt-get update

第二章 配置nginx

root@server:~# apt-get install nginx

修改Nginx的配置文件,我这里直接用的 /etc/nginx/sites-available/default 文件修改的

root@server: cat /etc/nginx/sites-available/default 
server {
listen 80;

server_name localhost;

root /var/www/html/;
index index.html;

location / {
    try_files $uri $uri/ =404;
}
}

第三章 配置Subconverter后端

参考 https://dasmz.com/?p=1169

root@server:~# mkdir ./subc
root@server:~# cd subc
root@server:~# wget https://github.com/tindy2013/subconverter/releases/download/v0.7.1/subconverter_linux64.tar.gz

root@server:~# tar -zxvf subconverter_linux64.tar.gz
root@server:~# cd subconverter

// 常驻后台,启动服务
root@server:~# nohup ./subconverter &

root@server:~# ss -tnl | grep 25500
// 能看到25500的端口监听就对了

root@server:~#
// 服务器上,这个正常进程在,就可以了

第四章 配置Subconverter前端

root@server:~# apt install -y curl wget sudo nodejs npm git
root@server:~# nodejs -v
v10.19.0
root@server:~# npm install -g yarn
root@server:~# yarn --version
1.22.17
root@server:~#
root@server:~# cd subc
root@server:~/subc# ls
subconverter
root@server:~/subc# git clone https://github.com/CareyWang/sub-web.git --depth=1
Cloning into 'sub-web'…
remote: Enumerating objects: 72, done.
remote: Counting objects: 100% (72/72), done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 72 (delta 0), reused 57 (delta 0), pack-reused 0
Unpacking objects: 100% (72/72), 267.15 KiB | 3.51 MiB/s, done.
root@server:~/subc# cd sub-web/
root@server:~/subc/sub-web# yarn install
yarn install v1.22.17
[1/4] Resolving packages…
[2/4] Fetching packages…
[3/4] Linking dependencies…
warning " > sass-loader@8.0.2" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0".
[4/4] Building fresh packages…
Done in 89.95s.
root@server:~/subc/sub-web# yarn serve
yarn run v1.22.17
$ vue-cli-service serve
INFO Starting development server…
98% after emitting CopyPlugin
...
这个时候,就可以访问了 http://23.94.198.166:8080
在构建发布前,需要修改默认的后端的地址 
1. 修改文件 /root/subc/sub-web/src/views/Subconverter.vue
找到 257行 backendOptions,替换后面的 http://127.0.0.1:25500/sub? 为我自己的sub后端地址 http://23.94.198.166:25500/sub?

2. 修改文件 /root/subc/sub-web/.env 中的后端地址
# API 后端
VUE_APP_SUBCONVERTER_DEFAULT_BACKEND = "http://23.94.198.166:2500"
-- 2022-1-23 增补的内容,不在视频中

首先停止调试程序,CTRL+C ,退出当前调试,然后执行下面的命令进行打包
root@server:~# yarn build

执行以下打包命令,在/root/subc/sub-web/下面会生成一个 dist 目录,这个目录即为网页的发布目录。
把这个目录下的文件全部拷贝到你之前发布网站的目录下,比如 /var/www/html/

root@server:~# cp -R /root/subc/sub-web/dist/* /var/www/html/

第五章 测试转换

准备了一个订阅地址 http://103.159.64.90:16801/tmpSubs

在页面上,点击转换,输出到剪贴板的

http://127.0.0.1:25500/sub?target=clash&url=http%3A%2F%2F103.159.64.90%3A16801%2FtmpSubs&insert=false 

完成的样子

备注,收集资料过程中,多余的数据信息

如果服务器在国内
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g yarn

备忘录,pip3安装包时候的异常处理 2022-1-22

pip3安装包时候的异常处理

报错信息如下

# pip3 install psycopg2
Collecting psycopg2
  Downloading https://files.pythonhosted.org/packages/fd/ae/98cb7a0cbb1d748ee547b058b14604bd0e9bf285a8e0cc5d148f8a8a952e/psycopg2-2.8.6.tar.gz (383kB)
    100% |████████████████████████████████| 389kB 2.3MB/s 
Building wheels for collected packages: psycopg2
  Running setup.py bdist_wheel for psycopg2 ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6opkdiqe/psycopg2/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpcg0csrfqpip-wheel- --python-tag cp35:
  /usr/lib/python3.5/distutils/dist.py:261: UserWarning: Unknown distribution option: 'project_urls'
    warnings.warn(msg)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.5
  creating build/lib.linux-x86_64-3.5/psycopg2
  copying lib/_range.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/sql.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/_lru_cache.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/errorcodes.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/extensions.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/__init__.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/pool.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/_json.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/extras.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/compat.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/tz.py -> build/lib.linux-x86_64-3.5/psycopg2
  copying lib/errors.py -> build/lib.linux-x86_64-3.5/psycopg2
  running build_ext
  building 'psycopg2._psycopg' extension
  creating build/temp.linux-x86_64-3.5
  creating build/temp.linux-x86_64-3.5/psycopg
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-5Cvh2K/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_VERSION=2.8.6 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=140003 -DHAVE_LO64=1 -I/usr/include/python3.5m -I. -I/usr/include/postgresql -I/usr/include/postgresql/14/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.5/psycopg/psycopgmodule.o -Wdeclaration-after-statement
  In file included from psycopg/psycopgmodule.c:28:0:
  ./psycopg/psycopg.h:36:22: fatal error: libpq-fe.h: No such file or directory
   #include <libpq-fe.h>
                        ^
  compilation terminated.
  
  It appears you are missing some prerequisite to build the package from source.
  
  You may install a binary package by installing 'psycopg2-binary' from PyPI.
  If you want to install psycopg2 from source, please install the packages
  required for the build and try again.
  
  For further information please check the 'doc/src/install.rst' file (also at
  <https://www.psycopg.org/docs/install.html>).
  
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for psycopg2
  Running setup.py clean for psycopg2
Failed to build psycopg2
Installing collected packages: psycopg2
  Running setup.py install for psycopg2 ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6opkdiqe/psycopg2/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ki8ms03h-record/install-record.txt --single-version-externally-managed --compile:
    /usr/lib/python3.5/distutils/dist.py:261: UserWarning: Unknown distribution option: 'project_urls'
      warnings.warn(msg)
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/psycopg2
    copying lib/_range.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/sql.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/_lru_cache.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/errorcodes.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/extensions.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/__init__.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/pool.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/_json.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/extras.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/compat.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/tz.py -> build/lib.linux-x86_64-3.5/psycopg2
    copying lib/errors.py -> build/lib.linux-x86_64-3.5/psycopg2
    running build_ext
    building 'psycopg2._psycopg' extension
    creating build/temp.linux-x86_64-3.5
    creating build/temp.linux-x86_64-3.5/psycopg
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-5Cvh2K/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_VERSION=2.8.6 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=140003 -DHAVE_LO64=1 -I/usr/include/python3.5m -I. -I/usr/include/postgresql -I/usr/include/postgresql/14/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.5/psycopg/psycopgmodule.o -Wdeclaration-after-statement
    In file included from psycopg/psycopgmodule.c:28:0:
    ./psycopg/psycopg.h:36:22: fatal error: libpq-fe.h: No such file or directory
     #include <libpq-fe.h>
                          ^
    compilation terminated.
    
    It appears you are missing some prerequisite to build the package from source.
    
    You may install a binary package by installing 'psycopg2-binary' from PyPI.
    If you want to install psycopg2 from source, please install the packages
    required for the build and try again.
    
    For further information please check the 'doc/src/install.rst' file (also at
    <https://www.psycopg.org/docs/install.html>).
    
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6opkdiqe/psycopg2/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ki8ms03h-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-6opkdiqe/psycopg2/
      copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/__init__.py -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/model.py -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/recompiler.py -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/api.py -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/_embedding.h -> build/lib.linux-x86_64-3.7/cffi
      copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.7/cffi
      running build_ext
      building '_cffi_backend' extension
      creating build/temp.linux-x86_64-3.7
      creating build/temp.linux-x86_64-3.7/c
      x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.7m -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.7/c/_cffi_backend.o
      [proxychains] DLL init: proxychains-ng 4.15
      [proxychains] DLL init: proxychains-ng 4.15
      c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
       #include <ffi.h>
                ^~~~~~~
      compilation terminated.
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  
      ----------------------------------------
  Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-zzoehyo1/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-bowz6rjy/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-31eykgev --compile" failed with error code 1 in /tmp/pip-install-zzoehyo1/cffi/
  
  ----------------------------------------
Command "/usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-31eykgev --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools>=40.8.0 wheel "cffi>=1.4.1; python_implementation != 'PyPy'"" failed with error code 1 in None

处理办法:

apt-get install build-essential
apt-get install python3-setuptools
apt-get install python3-dev
apt-get install python3-cffi
apt-get install libpq-dev

pip3 install --upgrade pip




Donate
云乞讨

基于MAC地址的白名单,使用iptables过滤MAC地址的问题 2022-1-19

有一个需求,在OpenVPN组网的时候,考虑MAC地址的白名单,根据OSI网络模型,应用层的代理,肯定看不到客户端设备的MAC地址,自然谈不上过滤。

不过OpenVPN应该是可以的,它是数据链路二层的。

参考了网络上的教程,基本上,可以基于iptables过滤网络内的一部分流量。为了方便大家理解,我这里贴一个iptables的工作逻辑原理图

理论上,必须经过我们的网卡的,才可以进行过滤

通常,在

  1. PREROUTING
  2. FORWARD
  3. INPUT

整理的资料信息:

例子01,限制INPUT,来源MAC地址 00:0F:EA:91:04:08,丢弃
/sbin/iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP


例子02,限制INPUT,目的端口22,来源MAC地址 00:0F:EA:91:04:07,允许
/sbin/iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT

例子03,限制INPUT,网卡为eth1,目的端口22,来源MAC地址为 00:0F:EA:91:04:07,允许
/sbin/iptables -A INPUT -i eth1 -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT

在FORWARD或者PREROUTING里面也同样的道理
/sbin/iptables -A FORWARD -i ethX -m mac --mac-source YOUR-MAC-ADDRESS-HERE -j ACCEPT

/sbin/iptables -A FORWARD -m state --state NEW -m mac --mac-source YOUR-MAC-ADDRESS-HERE -j ACCEPT


/sbin/iptables -A INPUT -p tcp --dport 22 -m mac ! --mac-source MAC-ADDRESS-HERE-TO-SKIP -j DROP
### Drop ssh access to all except our own MAC Address ###
/sbin/iptables -A INPUT -p tcp --dport 22 -m mac ! --mac-source YOUR-MAC-ADDRESS-HERE -j DROP
### Save rules ###
/sbin/service iptables save


可以使用IP/MAC同时匹配
iptables -A INPUT -p tcp -s 192.168.1.200 -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

限制登录的白名单MAC地址
/sbin/iptables -A INPUT -p tcp --dport 22 -m mac ! --mac-source YOUR-MAC-ADDRESS-HERE -j DROP
/sbin/iptables -A INPUT -p tcp --dport 22 -m mac ! --mac-source YOUR-MAC-ADDRESS-HERE -j DROP

在转发链的限制
iptables -A FORWARD -i eth0 -o eth1 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT


允许
iptables -I INPUT -p tcp --dport 22 -m mac --mac-source 3E:D7:88:A6:66:8E -j ACCEPT


拒绝
iptables -I INPUT -p tcp --dport 22 -m mac --mac-source 3E:D7:88:A6:66:8E -j REJECT



拒绝所有的,放行3E:D7:88:A6:66:8E
iptables -I INPUT -p tcp --port 22 -m mac ! --mac-source 3E:D7:88:A6:66:8E -j REJECT



一般的OpenVPN的规则
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -I INPUT -p udp --dport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to 104.237.156.154

REJECT动作会返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作,连接马上断开

DROP动作只是简单的直接丢弃数据,并不反馈任何回应。需要Client等待超时

参考 https://www.cyberciti.biz/tips/iptables-mac-address-filtering.html

配置OpenVPN组网的技术实践 2022-1-19

OpenVPN,是一个比较久远的开源VPN组网的方式了,也经过了这么多年的实践检验,对于绝大部分国人来说,用来过墙,这个技术是不合适的,如果是过墙需求,请忽略本文章。

纯国内的网络环境,基于OpenVPN跨地域的组网是非常合适而且可靠的,虽然,通常意义上,现在更推荐使用Wireguard的组网方式。

场景需求描述

客户办公环境下,有一个小型的局域网环境,有多台设备,需要公网可以访问内部资源,同时,由于其走的5G的CPE路由器进入的,需要将内网的设备进行隔离。

已经接近完工,待总结

开源下载工具,Hitomi-Downloader开箱介绍 2022-01-17

需求,替代迅雷的windows桌面端下载工具

项目地址 https://github.com/KurtBestor/Hitomi-Downloader

基本上Youtube-DL支持的网站,它都是支持的,b站,Youtube,Pornhub等等。

此外,它还支持磁力下载,BT种子下载。

一般的视频站点,下载方式很简单,复制需要下载的视频的网址,贴到它的内容框里,点击下载图标即可。

如果是某些海外的站,请自备一个可达的本地环境。

视频下载很快,转码速度很慢,估计用的CPU转码的,我显卡资源没有用上。

本篇对应的博客地址  https://dasmz.com/?p=1243
本篇对应的Youtube视频地址  https://youtu.be/JLZxW2nbxOY
Donate
云乞讨

玩转订阅地址转换神器 subconverter,含部分进阶参数设置 2022-1-11

更新记录 
+ 2022-01-11 编辑文章
+ 2023-11-22 更新文章,增加对于URL-TEST参数URL的修改,章节七

需求描述

在本篇文章中,会教会大家配置一个自己的subconverter,订阅地址转换,用自己配置的,也就不用担心自己购买的梯子被无良的人窃取使用了。

时间线

2022-1-11 完成基础配置,基础的订阅转换的讲解,视频地址,

2022-1-15 完成更新,如何自己使用项目源码,进行Linux x86_64平台的编译。

项目地址 https://github.com/tindy2013/subconverter

本篇文章发布的时候是2022-1-11,当前最新的release发布版本是0.7.1

https://github.com/tindy2013/subconverter/releases/tag/v0.7.1

第一章、基础配置,及订阅转换的讲解

// 获取对应平台版本的压缩包,我这里环境是linux x64的,就下载对应版本,不必root用户



user@server:~$ mkdir ./subc
user@server:~$ cd subc
user@server:~$ wget https://github.com/tindy2013/subconverter/releases/download/v0.7.1/subconverter_linux64.tar.gz
user@server:~$ tar -zxvf subconverter_linux64.tar.gz
user@server:~$ cd subconverter
// 常驻后台,启动服务
user@server:~$ nohup ./subconverter &
user@server:~$ ss -tnl | grep 25500
// 能看到25500的端口监听就对了
user@server:~$ 
// 服务器上,这个正常进程在,就可以了
// 通用的API接口参数格式
http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&config=%CONFIG%


// 刚刚的服务端启动好了后,假设102.199.166.159为刚刚搭建subconverter的服务器公网地址,那么,普通地址转换为其他客户端地址,典型示例样例如下
http://102.199.166.159:25500/sub?target=clash&url=机场普通订阅地址的URLEncode后的字符串
http://102.199.166.159:25500/sub?target=surge&ver=4&url=机场普通订阅地址的URLEncode后的字符串

将上面的对应的,添加到对应客户端即可!!

第二章,修改subconverter的监听端口

修改程序目录下的 pref.toml
如果需要修改为本地监听,修改listen,从'0.0.0.0'到'127.0.0.1',设置为本地的目的,主要是方便后续用Nginx之类的给它套HTTPS,连接更安全,你们可以不修改这个。
如果需要修改监听端口,修改port,从25500到你想要设置的端口(端口需要未被占用的)
[server]
listen = "127.0.0.1"  
port = 6419
serve_file_root = "web"预留位置,后面讲解

第三章,适配Clash新的内核

在2022-01-02附近,Dreamacro发布的新版的Clash内核,v1.9.0

https://github.com/Dreamacro/clash/releases

新版clash v1.9.0内核的配置文件,格式已有变化,之前全部版本的配置文件,在新版内核的各平台客户端上,已无法正常使用线路。我们也无法直接用subconverter v0.7.1版本进行直接订阅地址转换的适配

使用subconverter适配 clash v1.9.0内核的过程

https://github.com/tindy2013/subconverter/issues/442

查看修改更新的内容:

https://github.com/tindy2013/subconverter/commit/6e3324be50ecd6d7484c38722db572ff288415ef

获取新版clash v1.9.0内核的适配 6e3324be50ecd6d7484c38722db572ff288415ef

https://github.com/tindy2013/subconverter/actions

通过观察作者的修改,其实只需要替换一个文件 src/generator/config/subexport.cpp

https://github.com/tindy2013/subconverter/blob/master/src/generator/config/subexport.cpp

  1. 可直接从action里下载编译好的版本 by zhongfly
    相关链接:https://github.com/tindy2013/subconverter/actions/workflows/build.yml
  2. 可选用原作者提供的docker项目
  3. 可选自己根据项目源码进行编译

2022-1-15 更新:作者已经将这个改进合并到主线,故而,直接自己下载该项目的全部源码,整体编译一下即可。

自己编译生成对应平台的subconverter程序

# 执行编译的过程,系统OS推荐: Debian 10 / Ubuntu 20.04
# 自己的海外VPS上面编译,可以减少异常
# 我的VPS只有1核心1GB内存,故而,略微修改了编译脚本

apt-get update
apt-get install git
mkdir -p /root/src
cd /root/src
git clone https://github.com/tindy2013/subconverter.git
sed -i 's/j4/j1/g' /root/src/subconverter/scripts/build.alpine.release.sh
sed -i 's/j2/j1/g' /root/src/subconverter/scripts/build.alpine.release.sh
docker pull multiarch/alpine:amd64-latest-stable
docker run -v /root/src/subconverter:/root/workdir multiarch/alpine:amd64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"

完成编译后,会在该目录下,生成subconverter的目录,打包传输到需要运行subconverter的服务器,运行即可!!!

实在懒的动手的,就等原作者下次正式版本的release更新吧。

第四章,适配TikTok的规则

修改程序目录下的 rules/DivineEngine/Surge/Ruleset/StreamingMedia/Streaming.list
修改TikTok段落就对应的规则可以,如果是其他流媒体,也是类似的操作。
# > TikTok
USER-AGENT,TikTok*
DOMAIN-SUFFIX,akamaized.net
DOMAIN-SUFFIX,app-measurement.com
DOMAIN-SUFFIX,appsflyer.com
DOMAIN-SUFFIX,byteoversea.com
DOMAIN-SUFFIX,googleapis.com
DOMAIN-SUFFIX,ibytedtos.com
DOMAIN-SUFFIX,ibyteimg.com
DOMAIN-SUFFIX,ipstatp.com
DOMAIN-SUFFIX,muscdn.com
DOMAIN-SUFFIX,musical.ly
DOMAIN-SUFFIX,snapkit.com
DOMAIN-SUFFIX,tik-tokapi.com
DOMAIN-SUFFIX,tiktokcdn.com
DOMAIN-SUFFIX,tiktokcdn-us.com
DOMAIN-SUFFIX,tiktok.com
DOMAIN-SUFFIX,tiktokv.com
DOMAIN-KEYWORD,-tiktokcdn-com

第五章,WEB前端搭配

见地址 https://dasmz.com/?p=1289

第六章,增加对steam规则的适配 2022-02-18

修改 rules/DivineEngine/Surge/Ruleset/China.list

删除
# > Steam
DOMAIN-SUFFIX,steamcontent.com
DOMAIN-SUFFIX,steampowered.com
DOMAIN-SUFFIX,steamstatic.com


修改 rules/DivineEngine/Surge/Ruleset/StreamingMedia/Streaming.list

增加
# > Steam
DOMAIN-SUFFIX,steamcontent.com
DOMAIN-SUFFIX,steampowered.com
DOMAIN-SUFFIX,steamstatic.com

章节七,增加对URL-TEST参数的修改

近日发现猫咪的URL-TEST不工作了,排查发现,是 http://www.gstatic.com/generate_204 有点问题,如果是这样,那就好办了,无非就是不用谷歌的这个地址呗,直接从外面找一个 http://xx.xx.xx.xx/ 这样的IP:80类似格式,可以通的HTTP/WEB地址,修改到配置文件即可

修改配置文件 ./snippets/groups.toml

< url = "http://23.xx.xx.18/"
---
> url = "http://www.gstatic.com/generate_204"

修改完配置文件,直接重启一下subconverter即可。

= = = = = = 分割线 = = = = = =

v-000059
v-000060