为Linux系统,添加IPv6地址 2022-11-09

段落1、需求描述

购买了 Inception Hosting 官网 https://inceptionhosting.com 这家的一台服务器,购买的2.5欧元/月的款式,配置规格如下

2 CPU Core (Equal Share)
1024 MB Ram
20 GB Pure NVMe SSD Disk space
3000 GB Bandwidth @ 1 gbit (shared)
1 x IPv4 address
1 x /64 IPv6

它是有 1个IPv6地址,和 /64个IPv6地址,那就太棒了,给的IPv6地址,非常富足,可以随意折腾了

如下操作示范,以 Inception Hosting 官网 https://inceptionhosting.com 官方给的Ubuntu 20.04 系统环境下,执行命令,其他操作系统类似。

一般而言,默认的系统模板初始化的Linux系统,已经有1个IPv6地址的,如果想要添加更多,就需要自己操作修改。

信息:

分到的IPv6地址段  2a04:92c7:abcd:481::1/64
网关 2a04:92c7:abcd::1

段落2、增加IPv6地址到VPS的Linux系统

先临时添加2个在它/64地址段的其他IP地址

/sbin/ip addr add 2a04:92c7:abcd:481:2126:6232:4691:21f1/64 dev eth0
/sbin/ip addr add 2a04:92c7:abcd:481:5fe4:268e:d1b4:ece0/64 dev eth0

段落3、添加IPv6路由

/sbin/ip -6 route add 2a04:92c7:abcd::1 dev eth0
/sbin/ip -6 route add default via 2a04:92c7:abcd::1

其中的2a04:92c7:abcd::1是 2a04:92c7:abcd:0000:0000:0000:0000:0001的简写

可以测试一下,当前添加的2个IPv6地址,是否已通

段落4、删除IPv6地址

/sbin/ip addr del 2a04:92c7:abcd:481:2126:6232:4691:21f1/64 dev eth0
/sbin/ip addr del 2a04:92c7:abcd:481:5fe4:268e:d1b4:ece0/64 dev eth0

段落5、配置持续生效的增加IPv6地址

修改 /etc/network/interfaces 文件,新增2行增加IP地址的命令,其中up参数表示网络启动后执行

up ip addr add 2a04:92c7:abcd:481::78bc/64 dev eth0
up ip addr add 2a04:92c7:abcd:481:2126:6232:4691:21f1/64 dev eth0
up ip addr add 2a04:92c7:abcd:481:5fe4:268e:d1b4:ece0/64 dev eth0
up ip -6 route add 2a04:92c7:abcd::1 dev eth0
up ip -6 route add default via 2a04:92c7:abcd::1

附录1、

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Donate
云乞讨

附录2、配套的视频教程

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

本期博客地址 https://dasmz.com/?p=2879
本期视频地址 https://youtu.be/v7_vynGTNAo
博客地址 https://dasmz.com
Twitter  https://twitter.com/fdmove
全部视频的目录索引 https://dasmz.com/?p=1342

Linux版本选择,Ubuntu,CentOS等Linux发行版比较 2022-10-30

段落1、前言

日常涉及计算机领域的,都离不开Linux服务器,Linux以其优异的性能,对比Windows的轻资源占用,深受服务器领域的喜爱、采用。

那么对于普通的人而言,我们该怎么选择一个适合自己的Linux系统呢。

当你点开一个云服务器商家,开通云服务器的时候,操作系统该选择哪个呢

段落2、常见的Linux发行版本

  • Ubuntu: 基于Debian,适合用于编译,配套的依赖包很全,预装的软件多,对Linux新手友好,apt 包管理。常见版本 Ubuntu 18.04 LTS,Ubuntu 20.04 LTS,Ubuntu 22.04 LTS
  • Debian:适合有一定Linux基础,相比Ubuntu,需要更少的内存,更少的资源占用,apt 包管理。常见版本 Debian 9, Debian 10, Debian 11
  • Fedora:
  • CentOS:CentOS 其实相当于是RHEL企业版的免费,适合国内一些生产项目,有历史包袱的项目,如常见的CentOS 7,CenOS 8 版本,初始的Linux内核已偏旧,适合习惯于对应版本的执行操作的人群,yum /dnf包管理
  • OpenSUSE
  • RockyLinux:CentOS初始发起人,重新开的一个板子,习惯于CentOS的,可以选择。
  • SUSE:较大规模类企业,核心项目,订阅服务
  • RHEL:较大规模类企业,核心项目,订阅服务

段落3、Linux适合的场景推荐

1、对于刚刚接触Linux的小伙伴,特别是用习惯windows,这里比较推荐使用Ubuntu桌面版本,对于新手而言,比较容易适应。

2、对于从事IT工作,习惯于CentOS工作环境的,比较推荐使用CentOS / RockyLinux,两者使用习惯类似,容易上手,没有学习其他分支的压力。个别场景,对于CentOS 7 可能需要更换更新的Linux内核。

3、对于编译程序,交叉编译的场景,推荐使用多核的Ubuntu Server版本,比较好的依赖环境支持,编译一次嗦哈

4、对于云上,需一个简单可靠的Linux环境而已,且,有一定的动手能力,Linux基础,推荐使用新版本的Debian 11

5、涉及硬件的,如显卡,FPGA卡,需要校验驱动支持的,以硬件发行商,可支持的Linux版本为准

附录1

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

Donate
云乞讨

附录2、配套的视频教程

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

本期博客地址 https://dasmz.com/?p=2861
本期视频地址 https://youtu.be/rthJwTcCp0A
博客地址 https://dasmz.com
全部视频的目录索引 https://dasmz.com/?p=1342

宽带里获取到的IPv6地址 2022-10-23

上海电信宽带里,获取到的IPv6地址

先看看IPv4地址的信息

协议: DHCPv6 客户端
分发前缀: 240e:128:7139:ba00::/56
地址: 240e:12f:5181:13a9:c38b:4682:1ba1:66a6/64
网关: fe80::ce1a:faff:feed:5540
DNS 1: 240e:58:c000:1000:116:228:111:118

1、协议是 DHCPv6 Client 客户端

2、DHCPv6-PD 分发前缀 240e:128:7139:ba00::/56 ,这里需要知道,都是十六进制的符号,每个:分隔的,比如240e,长度都是 16 bit位

IPv6支持缩写的表达,比如240e:128:7139:ba00::/56,中的128,其实完整写法是 240e:0128:7139:ba00::/56

也支持连续0的缩写,如240e:0128:7139:ba00:0000:0000:0000:0001可缩写为 240e:128:7139:ba00::1

故而,240e:128:7139:ba00::/56 表示的网络为 240e:128:7139:ba

/56 可供分 16个/60的子网,/56 可供分 256个/64的子网,不同子网可以用来承载不同的业务

通常的分配规则为

/48 分配给企业宽带客户
/56 分配给家庭宽带客户,小型办公宽带客户
/64 分配给家庭路由器终端

/126 特殊,一般用于点对点链路,类似于IPv4中为点对点链路分配的/30,专线类业务

3、IPv6地址 240e:12f:5181:13a9:c38b:4682:1ba1:66a6/64

根据刚刚的缩写,它完整的表达应该为

240e:012f:5181:13a9:c38b:4682:1ba1:66a6/64

其中,240e,表示电信宽带

# 常见运营商的IPv6前缀
中国电信IPv6前缀 240e::/20
中国联通IPv6前缀 2408:8000::/20
中国广电IPv6前缀 240a:4000::/21
中国移动IPv6前缀 2409:8000::/20

路由器下方的电脑/手机设备,如果配置正确,可以获取到IPv6的公网地址

inet6 240e:128:7139:ba00::859/128 scope global dynamic noprefixroute 
inet6 240e:128:7139:ba00:4234:c25d:bf20:8337/64 scope global temporary dynamic 
inet6 240e:128:7139:ba00:ac60:cd0d:6df6:b994/64 scope global dynamic mngtmpaddr noprefixroute
IPv6地址作用域和地址分类
IPv6地址指定给接口,一个接口可以指定多个地址。
IPv6地址有作用域:
link local 地址 本链路有效
site local 地址 本区域(站点)内有效,一个site通常是个校园网
global 地址 全球有效,即可汇聚全球单播地址

IPv6地址分类:
unicast 单播(单点传送)地址
multicast 组播(多点传送)地址
anycast 任播(任意点传送)地址

IPv6没有定义广播地址,其功能由组播地址替代
::/128 即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口。
::1/128 即0:0:0:0:0:0:0:1,回环地址,相当于IPv4中的localhost(127.0.0.1),ping locahost可得到此地址。
2001::/16 全球可聚合地址,由 IANA 按地域和ISP进行分配,是最常用的IPv6地址,属于单播地址。
2002::/16 6 to 4 地址,用于6to4自动构造隧道技术的地址,属于单播地址。
3ffe::/16 早期开始的IPv6 6bone试验网 地址,属于单播地址。
fe80::/10 本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发以fe80开头的地址。
ff00::/8 组播地址。
::A.B.C.D 兼容IPv4的IPv6地址,其中<A.B.C.D>代表IPv4地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址。
::FFFF:A.B.C.D 是IPv4映射过来的IPv6地址,其中<A.B.C.D>代表IPv4地址,例如 ::ffff:202.120.2.30 ,它是在不支持IPv6的网上用于表示IPv4节点。
ip address add   # 此命令用于新增ip地址

option:

dev IFNAME:要将地址添加到的设备的名称

local ADDRESS (default):ip地址,地址的格式取决于协议

peer ADDRESS:点对点接口的远程端点的地址。 同样,ADDRESS后面可以跟一个斜杠和一个十进制数,对网络前缀长度进行编码。 如果指定了对等地址,则本地地址不能具有前缀长度。 网络前缀与对等方而不是与本地地址相关联。

broadcast ADDRESS:接口上的广播地址。 可以使用特殊符号“ +”和“-”代替广播地址。 在这种情况下,广播地址是通过设置/重置接口前缀的主机位得出的。

label LABEL:每个地址都可以用标签字符串进行标记。为了保持与Linux-2.0网络别名的兼容性,此字符串必须与设备名称一致,或者必须以设备名称的前缀后跟冒号

scope SCOPE_VALUE:此地址有效的区域的范围。可用的作用域列在/etc/iproute2/rt_scopes文件中。预定义的范围值包括:

global:地址全局有效

site:地址是站点本地地址,即在该站点内有效

link:该地址是本地链接,即仅在此设备上有效

host:地址仅在此主机内有效

valid_lft LFT:此地址的有效生存期;请参阅RFC 4862第5.5.4节。当它过期时,该地址将被内核删除。默认为“永远”

preferred_lft LFT:该地址的首选生存时间; 请参阅RFC 4862的5.5.4节。到期后,该地址将不再用于新的传出连接。 默认为永远

home:(仅IPv6)将此地址指定为RFC 6275中定义的“本地地址”

mngtmpaddr:(仅IPv6)代表“隐私扩展”(RFC3041)使内核将以此地址创建的临时地址作为模板进行管理。 为了使它生效,必须将use_tempaddr sysctl设置设置为大于零的值。 给定地址的前缀长度必须为64。此标志允许在手动配置的网络中使用隐私扩展,就像无状态自动配置处于活动状态一样。内核会从原本的IPv6地址计算生成一个临时地址。在连接远程服务器时,系统会优先选择这个地址以隐藏原来的地址

nodad: (仅限IPv6)添加此地址时不执行重复地址检测(RFC 4862)

noprefixroute:不要为添加的地址的网络前缀自动创建路由,并且不要在删除地址时搜索要删除的路由

键盘按键可视化显示工具 keyviz 2022-10-18

段落1、需求描述

录制技术视频的时候,有些组合按键,单独语音介绍,可能很多观众听不明白,如果能同步跟视频显示出来按键组合,则对于技术视频的观众而言,是个不错的方式

段落2、项目地址

https://github.com/mulaRahul/keyviz

段落3、安装使用

直接到它的release页面,进行下载 https://github.com/mulaRahul/keyviz/releases

在它的设置页面,可以调整它显示的位置,按键显示的风格,这个根据自身喜好调整即可,调整完配置,记得重启一下软件

段落4、其他说明

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者,金额随意

Donate
云乞讨

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

更新,略微修改,增加信息,2023-6-7

段落一、需求描述

免费的IP代理,虽然很多,但是,太不稳定了,速度也非常慢,对于实际业务需求的来说,使用免费的IP代理,浪费时间,影响工作效率

段落二、推荐IP代理的网站

推荐1 iproyal.com 价格约为 4美元/GB ,国人运营,相对支付简单一点。现在略微比第二家贵,不过它的动态蛮好用的,仅限制总流量,各个区域可以同时用。Update(2023-6-7)

推荐2 proxy-cheap.com 价格约为 4.99美元/GB ,外国商家,靠谱点。登录上去,发现这个网站支持支付宝充值余额了,就方便我们使用了,Update(2023-6-7)

段落三、购买住宅IP代理

下面,以iproyal.com 为例子,其他网站也都是类似的

注册网站,完成后,进入网站页面,点击左侧菜单的 Royal Residential Proxies,然后,点击页面上方的 Create new order.

在 Number of GB栏目下方,输入所需要的流量包的大小,一般来说,个人用户,例如我自己,偶尔采用的,1GB就足够用很长时间了。

输入完流量包的数字,点击Confirm

输入一个简单字符串的用户名,

输入一个略微复杂字符串的密码,

然后使用普通的PayPal支付即可。

支付完成后,即可看到如下的页面

页面上,重要的数据,参数释义

  • Country,国家,选择 美国, United States # 看你自己需要哪个国家地区
  • State/Region,州/省/区域,选择该国家中的某个省份或者城市 # 这个挺好用的,可以用来切换IP
  • Rotation,会话类型,选择随机IP,Randomize IP
  • Type,协议类型,这个默认的HTTP即可,也可选择socks5
  • HTTP Proxy Host,给你的住宅代理的入口地址
  • Proxy Port,给你的住宅代理的入口端口
  • Proxy Username,你自定义的用户名
  • Proxy Password,你自定义的密码 + 对应国家地区的信息

如上的信息,选择好了后,在该页面下方的 Formatted proxy list 中,可以看到你自己购买的住宅IP代理

他的格式定义是 username:password@hostname:port

就是用英文的:分割的几个重要字符

你添加到手机的客户端里即可

myusername:mypassword_country-us_city-orion@geo.iproyal.com:22323

1、类型 HTTP 
2、地址 geo.iproyal.com
3、端口 22323
4、用户名 myusername
5、密码 mypassword_country-us_city-orion   

这样的信息添加到iOS/Shadowrocket 或 Android/Sagernet,搭配链式转发使用即可。

Ubuntu/Debian 为网卡增加IP地址 2022-9-16

临时为网卡增加IP地址,需要root权限执行

root@server:~# ip address add 192.168.12.22/24 dev eth0    # 增加
root@server:~# ip address del 192.168.12.22/24 dev eth0    # 删除

如果临时添加,先ping,到新增的IP网络可通,再在云服务器上的网卡文件里,配置静态IP地址

To reconfigure servers running Debian, you will need to edit the file
/etc/network/interfaces.d/50-cloud-init

To reconfigure servers running Ubuntu, you will need to edit the file
/etc/netplan/50-cloud-init.yaml 

To reconfigure servers running CentOS, you will need to edit the file
/etc/sysconfig/network-scripts/ifcfg-eth0 

添加之后,重启网络服务,或者直接重启主机都可生效。

搭建自己的speedtest测速网页,测试WIFI6路由器 2022-9-14

段落1、需求说明

测速,一般推荐iperf3工具,但是,命令行的工具,不是所有人都喜欢的。这个时候,基于网页的speedtest测速页面,即可满足多平台,简易使用,方便手机设备测速的需要。

其实,是我买了一个WIFI6路由器,无线跑不到传说中的1200兆,我想要验证一下。

Wi-Fi 4(802.11n),最大频宽为40MHz,单流带宽最高为150Mbps

Wi-Fi 5(802.11ac),最大频宽支持80MHz和160MHz,单流带宽最高分别为433Mbps和867Mbps

Wi-Fi 6(802.11ax),最大频宽支持160MHz,单流带宽最高为1200Mbps

特别提醒

在中国,这1个信道可能还有一部分是跨越到动态频率选择(DFS)的信道。DFS是指城市中有很多天气雷达,这些雷达的频段也在5GHz。因此在使用DFS信道时,如果检测到雷达就要进行规避,而且信道有一段时间不能使用。在一个信道上,跨度太宽,对于双方都会造成很大的干扰

信道 36、40、44、48、52、56、60、64、149、153、157、161、165

因为这个项目提供了docker镜像的,可以最简单的docker方式拉起,体验一下。如果长期使用的,可以考虑基于命令的方式部署,更适合一些低内存的Linux环境。

它支持基本主流的几个浏览器,及其手机版本,故而,可以方便我们跑家里的WIFI测速

段落2、必要的环境和设备

1、家庭千兆网络

2、项目地址 https://github.com/librespeed/speedtest

3、家庭内,有一个Linux环境

4、手机设备一个

段落4、如果是docker方式部署

docker pull adolfintel/speedtest

docker run -d --name speedtest_web -e TITLE=NetSpeed -e MODE=standalone -p 80:80  adolfintel/speedtest

段落5、如果是基于Linux传统方式部署

暂空

段落6、家用测速,对路由器性能测试

对于我买的一个WIFI6路由器,用电脑网线,测试的LAN口,基本可以千兆局域网跑满

对于无线WIFI的5G信号,无线信号是36,频道是160/80/40/20MHz自适应。带宽只有367Mbps,查了一下,原来是我的手机不支持WIFI6。

附录1、参考链接

https://github.com/librespeed/speedtest/blob/master/doc_docker.md

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

前缀:文档更新发布修改时间戳

// 2022-9-18 补充一个香港服务器的API地址,给大家使用。
// 2023-9-16 增加一个美国的API服务器,形成3个API服务器,随意用哪个都可以

段落1、需求描述

网络上,很多网站提供免费的http/https/socks4/socks5类型的IP代理,透明代理,但是绝大部分都是不可用的,为了便捷找到其中可用的,制作了这个接口。让白嫖便捷起来。

段落2、重要信息

加拿大,API接口地址 http://192.99.6.159:6408/c
参数1 type 可选 http/https/socks4/socks5
参数2 ip 需为一个有效的IPv4地址
参数3 port 需为一个有效的端口号1-65535

加拿大,测试用例
curl -s "http://192.99.6.159:6408/c?type=http&ip=64.124.191.98&port=32688"
香港,API接口地址 http://216.250.97.93:11503/c
参数1 type 可选 http/https/socks4/socks5
参数2 ip 需为一个有效的IPv4地址
参数3 port 需为一个有效的端口号1-65535

香港,测试用例
curl -s "http://216.250.97.93:11503/c?type=socks4&ip=85.92.165.225&port=4145"

美国,API接口地址 http://23.94.198.166:28053/c
参数1 type 可选 http/https/socks4/socks5
参数2 ip 需为一个有效的IPv4地址
参数3 port 需为一个有效的端口号1-65535

美国,测试用例
curl -s "http://23.94.198.166:28053/c?type=socks4&ip=85.92.165.225&port=4145"

如果上述API接口地址,因为服务器流量用完,或服务器故障等原因,持续3天不可用,未恢复的,可在博客下,或者我的Youtube视频下方,给我留言,通知我补一个其他可用的API地址。

注意,目前该API接口地址,位于加拿大服务器,主要用于检测海外的IP代理,如果用来国内的IP代理效果不佳。

段落3、请求示例

请求示例1  命令行方式,如Windows的Powershell内执行
curl -s "http://192.99.6.159:6408/c?type=socks5&ip=8.210.163.246&port=50019"

请求示例2  浏览器打开,在浏览器地址栏访问如下的完整URL
http://192.99.6.159:6408/c?type=socks5&ip=165.154.92.12&port=3512

段落4、请求结果

输出内容:时间 有效状态(Y/N) 代理信息。透明代理无效的,返回N,有效的,返回Y

2022-09-01 16:44:58 N socks5://143.244.184.250:37237
2022-09-01 16:44:59 N socks5://51.75.83.94:1080
2022-09-01 16:45:02 N socks5://43.128.40.142:65533
2022-09-01 16:45:06 N socks5://185.200.38.235:10820
2022-09-01 16:45:09 N socks5://37.187.73.136:56137
2022-09-01 16:45:10 Y socks5://188.165.209.167:7497
2022-09-01 16:45:11 N socks5://74.62.7.66:1888
2022-09-01 16:45:11 N socks5://217.115.115.148:56792
2022-09-01 16:45:15 N socks5://92.53.90.84:4496
2022-09-01 16:45:15 N socks5://50.116.14.201:7497
2022-09-01 16:45:17 Y socks5://203.153.36.37:7497
2022-09-01 16:45:21 N socks5://176.88.177.197:61080
2022-09-01 16:45:26 N socks5://142.93.78.172:14729
2022-09-01 16:45:31 N socks5://96.45.169.55:8081
2022-09-01 16:45:34 N socks5://60.255.146.157:7300
2022-09-01 16:45:38 N socks5://174.138.52.209:40694
2022-09-01 16:45:44 N socks5://143.244.140.236:8444
2022-09-01 16:45:47 N socks5://167.86.99.193:34990
2022-09-01 16:45:50 Y socks5://47.240.226.173:1080
2022-09-01 16:45:51 N socks5://150.230.62.147:2080
2022-09-01 16:45:52 N socks5://79.9.90.134:1080

如上的,只要在powershell中,用curl 一行一个,检测IP代理/透明代理,能否使用即可。

附录1 打赏作者的更新

原创技术博客,创作不易,且读且珍惜。

Donate
云乞讨