跳转至

笔记

uTorrent

缓存设置

tjupt的默认设置就不错。红框是建议勾选的。

错误:内存不足,无法完成请求

This is because the cache size is too big, lower to 512MB or 1GB to fix this.1 But the size bigger the faster, 1.4GB is the biggest available value which ut can support.

突然没速度了,可能是缓存卡住了。一般也没什么解决办法。但是稳定下载的时候会均衡。

下载如何修改文件名和位置

首先不要勾选"立即下载",通过如下更改位置即可再开始下载即可。还可以多选来批量移动文件到文件夹。(对于PT需要下载100%文件才能做种的,但是不需要的文件会影响刮削。可以通过批量移动到其他位置来解决)

北洋园tjupt红种问题

Essential Reason: tjupt.org's network traffic is brokered

configure the router policy to DIRECT to fix this.

其余方法:实际测试重置网络解决
  1. 无法与服务器建立连接. utorrent种子暂停然后开始/更新tracker即可
  2. 键盘按“Win + R”组合快捷键,输入“inetcpl.cpl”,点击“确定”进入“Internet选项”,在“高级”选项卡中选择“重置 IE 设置”

参考文献

http://pgpchs.blogspot.com/2011/03/utorrent-antigfwalloutwallbloggercom.html

https://blog.csdn.net/Gerald_Jones/article/details/78848426


  1. https://www.gebi1.com/thread-102594-1-1.html 

Jellyfin

导言

作为一个影视剧爱好者,通过开源软件jellyfin如何管理BT或者PT下载的视频资料是本文的主要内容。

Wake On Lan(Wol)

简介

Wake-on-LAN 也叫 WoL,指通过网络消息打开或唤醒计算机。

WoL 需要由另一台「同局域网」设备发送网络信号,任意有能力发送 WoL 信号 的设备都可以充当此角色;在远程办公场景中,则最好由「带有线网卡的低功耗设备」来执行,这类设备包括但不限于以下选项:

  1. 带网络唤醒 WoL 功能的路由器产品
  2. OpenWrt Linux 设备「TP-Link 703n」
  3. 树莓派「推荐 2 代」

网络扫描

获取局域网下设备MAC地址, 或者OpenWRT直接显示 |平台 |工具 | | ---| ---| Windows | Softperfect Network Scanner Linux | arp-scan Android / iOS | Fing / PingTools

发出唤醒信息的软件

可以使用的幻数据包唤醒工具有:

平台 工具 特点
Windows wolcmd.exe 命令行,跨网段
Linux/MacOS etherwake, wakeonlan 命令行,同网段
Android / iOS Fing / PingTools 可扫描

请注意,WoL 属于无状态协议,仅发送、不确认。

问题:抓包发现 WolCmd和wakeonlan的目的地址不同

WolCmd.exe 90:09:D0:15:70:B8 192.168.233.242 255.255.255.255 9 (目的地址 192.168.233.242)
WolCmd.exe 90:09:D0:15:70:B8 192.168.233.242 255.255.255.0 9 (测试过本地能成功,br-lan路由器能抓, 本地wireshark目的地址 192.168.233.255)


WolCmd.exe 90:09:D0:15:70:B8 192.168.233.242 0.0.0.0 9 (目的地址 192.168.233.109.53362 > 255.255.255.255.9 注意:109是macboook)

shaojiemike@shaojieikedeAir ~/github/hugoMinos (main*) [11:46:22]
> wakeonlan 90:09:D0:15:70:B8 (目的地址 192.168.233.109.53362 > 255.255.255.255.9 注意:109是macboook)
Sending magic packet to 255.255.255.255:9 with payload 90:09:D0:15:70:B8
Hardware addresses: <total=1, valid=1, invalid=0>
Magic packets: <sent=1>

路由遇到目的MAC是广播地址怎么办?

IP的广播有三种: 1. 255.255.255.255叫本地广播,也叫直播,direct broadcast,不跨路由器。 2. 172.16.33.255叫子网广播,广播给172.16.33.0这个子网,可以跨路由器 3. 172.16.255.255叫全子网广播,广播给172.16.0.0这个主网,可以跨路由器。

路由器是三层设备,可以隔离广播,但并不是所有广播都隔离。事实上只有本地广播路由器才不转发,对于子网广播和全子网广播,路由器是转发的。

为什么呢?我们来看255.255.255.255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。所以路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。

广播规则

> netstat -r -anv
Routing tables

Internet:
Destination        Gateway            Flags           Netif Expire
default            192.168.233.1      UGScg             en0
127.0.0.1          127.0.0.1          UH                lo0
192.168.233        link#11            UCS               en0      !
192.168.233.1/32   link#11            UCS               en0      !
192.168.233.1      5c:2:14:b3:2:a     UHLWIir           en0   1172
192.168.233.109/32 link#11            UCS               en0      !
192.168.233.242    90:9:d0:15:70:b8   UHLWI             en0    151
192.168.233.255    ff:ff:ff:ff:ff:ff  UHLWbI            en0      !
255.255.255.255/32 link#11            UCS               en0      !
255.255.255.255    ff:ff:ff:ff:ff:ff  UHLWbI            en0      !
路由器
[root@ax6s ~]$ ip route get to 192.168.233.242 from 192.168.233.142 iif lan2
192.168.233.242 from 192.168.233.142 dev br-lan
    cache iif lan2
[root@ax6s ~]$ ip route get to 192.168.233.255 from 192.168.233.142 iif lan2
broadcast 192.168.233.255 from 192.168.233.142 dev lo table local
    cache <local,brd> iif lan2
[root@ax6s ~]$ ip route get to 255.255.255.255 from 192.168.233.142 iif lan2
broadcast 255.255.255.255 from 192.168.233.142 dev lo
    cache <local,brd> iif lan2

电脑需要远程被远程唤醒

电脑设置

  1. 「网络连接」
  2. 以太网(有线网)属性
  3. 【网络】(Realtek PCIe 2.5GbE Family Controller)下配置
  4. 【电源管理】勾选「允许此设备唤醒计算机」以及「只允许幻数据包唤醒计算机」
  5. BIOS打开相关选项
    Automatic Power On
    Wake on LAN/WLAN
    Power Management
    Power On by Onboard LAN
    Power On by PCI-E Devices
    

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

Nas 太吵,需要自动关机

参考文献

https://sspai.com/post/67003

https://www.depicus.com/wake-on-lan/wake-on-lan-cmd

Ed2k

基本原理

区别于BT,核心概念在于文件共享。

  1. 设置共享目录,该目录中的所有文件,都会实时共享到eDonkey和KAD网络中。
  2. 目录中共享了的文件都会生成eD2k链接,所有人通过相应的eD2k链接,都能够拿到你共享的文件,
  3. 一旦有人下载相应文件,那么你的eMule客户端就会上传数据。
  4. 平时使用eD2k链接下载,资源也是来自他人eMule所共享的文件的。
  5. 当然,共享目录中也可以啥都不放,但很多eMule客户端都拥有队列优先级机制,上传得少,下载速度也会被限制。

与BT的区别

  1. 资源持久性
  2. 对于BT来说,用户被视为下载者。当用户上传到指定比率作为一个下载者的义务就完成了,一般就停止上传了,这使得BT在下热门资源的时候速度快,但是对冷门资源来说即使这个文件没有被删除也不会有上传者了。
  3. 而对于eMule来说,用户被视为分享者。只要用户文件没被删除作为资源分享者就一直上传,这样可以长期保源。
  4. 资源搜索能力
  5. BT协议中没搜索功能
  6. eMule搜索的时候每个资源大小来源数甚至拥有者对其的评价都是一目了然的,这样使得资源广泛分布,也有利于资源优胜劣汰,从而达到长期保源的目的。

基本概念

eD2k:

eDonkey网络所使用的协议,eDonkey网络所共享的文件会生成eD2k开头的链接。

电驴

eDonkey2000:(又称:eDonkey;缩写:eD2k;非官方中文译名:电驴)最先开发使用eDonkey网络的文件共享客户端软件。2000年起开发,2005年停止维护,之后eDonkey网络被其他软件沿用。

电骡

eMule:(官方中文名:电骡)eMule及其Mods是现在最流行的一款eDonkey网络文件共享客户端软件。2002年起开发。

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

作者:qysnn 链接:https://www.zhihu.com/question/19922200/answer/29022933 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Clash on LAN/linux/Dockers

导言

在国内的linux服务器上,往往需要clash来代理访问github等外网资源。

有几种解决方案:

  1. 透明代理
  2. ssh 转发实现代理,类似ssh -fNgR 7333:127.0.0.1:7890 [email protected]
  3. Clash 的 Allow LAN功能
  4. Clash in Docker
  5. Clash in Linux

Clash的模式

  • 系统代理模式:只代理127.0.0.1:7890上的数据
  • TUN代理模式:虚拟网卡,并接管所有的网络层的数据
    • 无法封装网络层数据包,无法代理ping, fake-ip还会返回假ip
    • TUN与TAP是操作系统内核中的虚拟网络设备:
      • TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧。
      • TUN模拟了网络层设备,操作第三层数据包比如IP数据包。
  • 舍弃的redir-host模式由于必须返回一个真实ip,因此必需发起dns请求,存在dns泄露
  • 默认的fake-ip会对域名的DNS请求返回fake-ip,从而避免DNS泄露。然后根据域名分流将信包发送到对应的上游代理机器,把域名DNS解析工作留给上游机器。
    • fake-ip模式,将fake-ip-filter设置为+.*便等价于redir-host模式

Clash的配置文件

# RESTful web API listening address
external-controller: 127.0.0.1:9090


# DNS server settings
# This section is optional. When not present, the DNS server will be disabled.
dns:
  enable: false
  listen: 0.0.0.0:53
  ipv6: false # when the false, response to AAAA questions will be empty

  # These nameservers are used to resolve the DNS nameserver hostnames below.
  # 默认只支持ip
  default-nameserver:
    - 8.8.8.8

  # 对于下面的域名,fake-ip模式会返回真实ip
  fake-ip-filter:
    - '*.lan'
    - localhost.ptlogin2.qq.com

  # 支持 UDP, TCP, DoT, DoH. 和指定端口
  # 所有DNS请求都会不经过代理被转发到这些服务器,Clash会选择一个最快的返回结果
  nameserver:
    - https://223.5.5.5/dns-query # 阿里云
    - https://doh.pub/dns-query #腾讯云
    - tls://dns.rubyfish.cn:853 # DNS over TLS
    - https://1.1.1.1/dns-query # DNS over HTTPS
    - dhcp://en0 # dns from dhcp

  # 对于所有DNS请求,fallback和nameserver内的服务器都会同时查找
  # 如果DNS结果为非国内IP(GEOIP country is not `CN`),会使用fallback内的服务器的结果
  # 因为nameserver内为国内服务器,对国外域名可能有DNS污染。fallback内是国外服务器,能防止国外域名被DNS污染
  fallback:
    - https://162.159.36.1/dns-query 
    - https://dns.google/dns-query
    - tls://8.8.8.8:853

  # DNS污染攻击的对策
  fallback-filter:
    geoip: false # If geoip is true, when geoip matches geoip-code, clash will use nameserver results. Otherwise, Clash will only use fallback results.
    # geoip-code: CN    
    ipcidr: # IPs in these subnets will be considered polluted, when nameserver results match these ip, clash will use fallback results.
      - 0.0.0.0/8
      - 10.0.0.0/8
      - 100.64.0.0/10
      - 127.0.0.0/8
      - 169.254.0.0/16
      - 172.16.0.0/12
      - 192.0.0.0/24
      - 192.0.2.0/24
      - 192.88.99.0/24
      - 192.168.0.0/16
      - 198.18.0.0/15
      - 198.51.100.0/24
      - 203.0.113.0/24
      - 224.0.0.0/4
      - 240.0.0.0/4
      - 255.255.255.255/32
    domain: #Domains in these list will be considered polluted, when lookup these domains, clash will use fallback results.
      - +.google.com
      - +.facebook.com
      - +.youtube.com
      - +.githubusercontent.com

Clash use Allow LAN

假如服务器和笔记本在LAN下,笔记本的clash软件只需要打开LAN就可以给服务器代理了,是最简单方便的方式。

Clash in Docker

由于UGREEN NAS一直开机,作为代理节点很适合。

首先注意修改代理机场的文件config.yaml0.0.0.0:9090,以便haishanh/yacd使用。

mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: '0.0.0.0:9090'
  • 使用dreamacro/clash1
  • UI使用haishanh/yacd

Clash in Linux

下载

下载可执行文件

wget https://github.com/Dreamacro/clash/releases/download/v1.11.8/clash-linux-amd64-v1.11.8.gz
scp
gunzip clash-linux-amd64-v1.11.8.gz
chmod u+x clash-linux-amd64-v1.11.8
  • Clash 运行时需要 Country.mmdb 文件,Country.mmdb 文件利用 GeoIP2 服务能识别互联网用户的地点位置,以供规则分流时使用。
  • 当第一次启动 Clash 时(使用 ./clash 命令) 会自动下载(会下载至 /home/XXX/.config/clash 文件夹下)。自动下载可能会因网络原因较慢,可以访问该链接手动下载。

配置

根据订阅链接配置文件

cd ~/.config/clash
curl -o config.yaml 'longURL'

验证

成功结果

# shaojiemike @ node6 in ~/Download [10:22:54] C:130       
$set_proxy                                            

# shaojiemike @ node6 in ~/Download [10:22:57]       
$ curl -v www.google.com 

# shaojiemike @ node6 in ~/Download [10:21:46]
$ ./clash-linux-amd64-v1.11.8
INFO[0000] Start initial compatible provider 🍃 Proxies
INFO[0000] Start initial compatible provider ☁️ Others
INFO[0000] Start initial compatible provider 🍂 Domestic
INFO[0000] Start initial compatible provider ⭐️ Auto
INFO[0000] Mixed(http+socks) proxy listening at: [::]:7890
INFO[0000] RESTful API listening at: [::]:9090
INFO[0000] DNS server listening at: [::]:5323
INFO[0070] [TCP] 127.0.0.1:52664 --> www.google.com:80 match DomainKeyword(google) using 🍃 Proxies[专线 日本 03]

图形化界面管理

http://clash.razord.top/#/proxies

输入

Host: node6.swangeese.fun
Port: 9090
Secret: 配置文件配置的 secret

查看config.yaml,发现是空

mixed-port: 7890                                      
allow-lan: true                                           
mode: rule                                                    
log-level: info                                                     
external-controller: '0.0.0.0:9090'                               
secret: ''

常见问题

address already in use
# shaojiemike @ node6 in ~/Download [10:14:25]
$ ./clash-linux-amd64-v1.11.8
INFO[0000] Start initial compatible provider ⭐️ Auto
INFO[0000] Start initial compatible provider 🍃 Proxies
INFO[0000] Start initial compatible provider ☁️ Others
INFO[0000] Start initial compatible provider 🍂 Domestic
INFO[0000] RESTful API listening at: [::]:9090
INFO[0000] Mixed(http+socks) proxy listening at: [::]:7890
ERRO[0000] Start DNS server error: listen udp 0.0.0.0:5353: bind: address already in use

修改配置文件里的端口即可

参考文献

https://blog.iswiftai.com/posts/clash-linux/

https://einverne.github.io/post/2021/03/linux-use-clash.html

AI Image

AI tag

https://www.bilibili.com/video/BV1L84y1z7bH/?spm_id_from=333.999.0.0&vd_source=5bbdecb1838c6f684e0b823d0d4f6db3

https://aitag.top/

novelAI

官网要钱,有泄漏的50G的模型,B站有up抽取了其中的一个做了整合包

不知道,会不会有版权问题下架了。

https://pan.baidu.com/s/1AAHoNYYano6q7XBl3luCcg
upqn

常见问题(环境RTX3070 8G)

  1. 6G、8G显存生成太慢的问题已经修复
  2. 百度盘里已经上传了修复包,请下载并且替换hydra_node里所有文件
  3. 然后6G显存请使用6g的bat文件 等于8G或者以上的直接使用start.bat
  4. 网址是 127.0.0.1:6969
  5. CTRL+C 好像才能启动?
  6. RTX3070 大概20s一张

可以把start.bat改成sh脚本在实验室A100上跑

参考文献

作者:秋葉aaaki https://www.bilibili.com/read/cv19038600?spm_id_from=333.788.b_636f6d6d656e74.7 出处:bilibili

PIM Simulator

PIM 模拟器的基本分类

技术路线 代表
全系统模拟 gem5
基于平台无关的PIM的trace代码的模拟 Sinuca (HPCC'15)
Host端为真实机器,只模拟PIM端 \(Sim^2PIM\) (DATE'21)
PIMSim( IEEE Computer Architecture Letters'19)
## memory operations采集
  1. Intel's Pin Software 采集 user-mode memory operations
  2. Bochs full system emulator / ZSim / gem5

各种PIM论文里的模拟器环境

文献 环境 特点
CoNDA(ISCA ’19) gem5(X86 full-system) + DRAMSim2 魔改了gem5的内存模型
Accelerating Neural Network Inference with Processing-in-DRAM: From the Edge to the Cloud(IEEE Micro) 讨论了三种PIM架构1. UPMEM(真实系统) 2. Mensa(Google’s Edge TPU in-house simulator) 3. SIMDRAM(gem5)
Ambit: In-Memory Accelerator for Bulk Bitwise Operations Using Commodity DRAM Technology(Micro 17) gem5
GraphPIM: Enabling Instruction-Level PIM Offloading in Graph Computing Frameworks Structural Simulation Toolkit (SST) [28] with MacSim [29], a cycle-level architecture simulator. HMC is simulated by VaultSim, a 3D-stacked memory simulator. We extend VaultSim with extra timing models based on DRAMSim2
ProPRAM: Exploiting the Transparent Logic Resources in Non-Volatile Memory for Near Data Computing Multi2Sim + DRAMSim2 + NVSim
Operand Size Reconfiguration for Big Data Processing in Memory(RVU 架构 DATE 17 B会) SiNUCA(类似gem5)

越来越多的工作在real PIM system上开展,基于专门的PIM模拟器的貌似很少???为什么无法满足定制的要求吗?

PIM 编译器

A compiler for automatic selection of suitable processing-in-memory instructions,

PIM cache coherence实现

Providing plug n’ play for processing-in-memory accelerators,

LazyPIM: An Efficient Cache Coherence Mechanism for Processing-in-Memory,

各种的PIM模拟器

比较,优点和局限性

模拟器名称 文献 代码 特点
ZSim + Ramulator Processing-in-memory: A workload-driven perspective https://github.com/CMU-SAFARI/ramulator-pim/ ZSim(类似gem5)+Ramulator(HMC logic layer add PIM core) 了解实现原理后,其memory端的拓展性值得期待
Sim2PIM 暂无 可以将任意PIM架构和任意host端结合,多线程very fast as perf(通过利用Host系统OS的pthread和硬件计数器来实现)缺点:Host端的cache策略等不能任意定制
gem5 SiNUCA文章指出gem5的DRAM模拟误差可以达到36%
Sinuca(HPCC 15) Sinuca: A validated micro-architecture simulator use real trace-based simulator(但是不能采OS和多线程的)
PinTools Pin: Building customized program analysis tools with dynamic instrumentation, 类似上面的,JIT执行
MultiPIM Multipim: A detailed and configurable multistack processing-in-memory simulator
Pimsim Pimsim: A flexible and detailed processing-in-memory simulator 太慢
Hmc-sim-2.0: A simulation platform for exploring custom memory cube operations 特定架构
Cycle Accurate Parallel PIM Simulator (CLAPPS) A generic processing in memory cycle accurate simulator under hybrid memory cube architecture 依赖system模拟器(SystemC HMC simulation)
Mnsim: Simulation platform for memristor-based neuromorphic computing system 不是全系统的模拟(忆阻器PIM 模拟器)
Cim-sim Non-Volatile Memory(忆阻器PIM 模拟器)

ZSim + Ramulator 功能

host CPU cores and general-purpose PIM cores.

The PIM cores are placed in the logic layer of a 3D-stacked memory (Ramulator's HMC model).

The simulation framework does not currently support concurrent execution on host and PIM cores.

主机CPU核和通用PIM核的计算系统。PIM核心被放置在一个3d堆叠存储器(Ramulator的HMC模型)的逻辑层中。通过这个模拟框架,我们可以模拟主机CPU核和通用PIM核,目的是比较两者对于一个应用程序或其部分的性能。该仿真框架目前不支持主机和PIM核心上的并发执行。

use ZSim to generate memory traces that are fed to Ramulator.

Zim跟踪内存的使用,还可以模拟主机的缓存层次结构(包括coherence协议)。ZSim还可以模拟硬件预取器。

Ramulator simulates the memory accesses of the host cores and the PIM cores

Ramulator contains simple models of out-of-order and in-order cores that can be used for simulation of host and PIM.

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

PersonalWebsiteDomain

Ubuntu 下Apache 域名绑定设置

在 HuaWei Cloud 购买域名

  1. 购买 shaojiemike.top
  2. 自动在华为DNS服务器上进行DNS解析(ip与域名对应)
  3. 实名认证
  4. 网站报备
  5. 网站解析 当您想在Internet上通过域名访问您的网站时,可以通过华为云的云解析服务为域名添加解析记录。

    例如,搭建一个网站服务器,采用IPv4格式的弹性IP地址。如果想要实现通过域名“example.com”及其子域名“www.example.com”访问该网站,需要配置如下解析记录:

    A:添加域名“example.com”到弹性IP地址的解析记录。
    A:添加子域名“www.example.com”到弹性IP地址的解析记录。
    
    1. 修改DNS服务器为华为 不要修改成域名解析的

DNS域名解析查看

# shaojiemike @ node6 in ~ [21:24:21]
$ dig +trace shaojiemike.us.to

; <<>> DiG 9.16.1-Ubuntu <<>> +trace shaojiemike.us.to
;; global options: +cmd
.                       184     IN      NS      f.root-servers.net.
.                       184     IN      NS      h.root-servers.net.
.                       184     IN      NS      c.root-servers.net.
.                       184     IN      NS      m.root-servers.net.
.                       184     IN      NS      g.root-servers.net.
.                       184     IN      NS      j.root-servers.net.
.                       184     IN      NS      a.root-servers.net.
.                       184     IN      NS      i.root-servers.net.
.                       184     IN      NS      l.root-servers.net.
.                       184     IN      NS      k.root-servers.net.
.                       184     IN      NS      d.root-servers.net.
.                       184     IN      NS      e.root-servers.net.
.                       184     IN      NS      b.root-servers.net.
;; Received 262 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms

to.                     172800  IN      NS      frankfurt.tonic.to.
to.                     172800  IN      NS      singapore.tonic.to.
to.                     172800  IN      NS      tonic.to.
to.                     172800  IN      NS      newyork.tonic.to.
to.                     172800  IN      NS      colo.tonic.to.
to.                     172800  IN      NS      sydney.tonic.to.
to.                     172800  IN      NS      helsinki.tonic.to.
to.                     86400   IN      NSEC    today. NS RRSIG NSEC
to.                     86400   IN      RRSIG   NSEC 8 1 86400 20221118050000 20221105040000 18733 . zYyPgXiUoIoPzZsXi8WD0aT0Ps7ajmQYA/blzyfNG6Pl1NdONShc/3T1 3p2rAfr2a7NI6SI+yeEyiRYeeI86RuNv1u4aAJD2QXZapKlogP+hveb/ SYztzsr70Ha6/7RQAqQqY+ctHOZXIzUMhpNxFneTXcJ2CVhQmGIYG0sa 0BmaDKH0kxFHtbJZvENMpo4WrE0KTNzFsYlHZQGZV0OQeU/MpcSkPt5I DefxNVBMqMS8lF0Wzg8ESwEDddE7WvMlCNlnBLE7LHk0ZdQGU5Qg/8Ot CpNKEjCoROXA7sA/CkrGEdhW3CZnJYOdQ6UcH2pDwYYVIOsE7L8QJV/r RC9/tA==
;; Received 653 bytes from 199.7.83.42#53(l.root-servers.net) in 60 ms

us.to.                  86400   IN      NS      NS4.AFRAID.ORG.
us.to.                  86400   IN      NS      NS3.AFRAID.ORG.
us.to.                  86400   IN      NS      NS1.AFRAID.ORG.
us.to.                  86400   IN      NS      NS2.AFRAID.ORG.
;; Received 156 bytes from 95.216.159.42#53(helsinki.tonic.to) in 272 ms

us.to.                  3600    IN      SOA     ns1.afraid.org. dnsadmin.afraid.org. 2211050595 86400 7200 2419200 3600
;; Received 133 bytes from 2001:1850:1:5:800::6b#53(NS2.AFRAID.ORG) in 260 ms

可以看到13个根DNS服务器到to子服务器再到us.to的解析过程。

在 HuaWei Cloud 配置域名解析

为域名添加A记录集

在“公网域名”页面的域名列表的“域名”列,单击域名的名称“example.com”。 进入“解析记录”页面。

在页面右上角,单击“添加记录集”。 在“添加记录集”页面,根据界面提示为域名“example.com”设置A记录集参数。

解析

为子域名添加A记录集

主机记录:设置为“www”,表示解析的域名为子域名“www.example.com”。

测试域名解析是否生效

D:\OneDrive - mail.ustc.edu.cn\homepage> nslookup shaojiemike.top ns1.huaweicloud-dns.org
Server:  ecs-159-138-77-159.compute.hwclouds-dns.com
Address:  159.138.77.159

Name:    shaojiemike.top
Address:  202.38.73.26

解析2

ECS

云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务。它能帮助您快速的构建更稳定、安全的应用,提高运维效率,降低IT成本

如何判断自己IP是内网IP还是外网IP

局域网,内网IP
  1. tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:
    10.0.0.0/8:10.0.0.0~10.255.255.255
    172.16.0.0/12:172.16.0.0~172.31.255.255
    192.168.0.0/16:192.168.0.0~192.168.255.255
    
  2. 一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其他用户并不能访问到这些ip。

有这么一种情况:拉的联通的带宽,分配的IP只能在联通内部访问,移动网络不能访问。这个IP最多只能算是“联通内的公网IP”,不是真的公网IP。

上面几部分IP都可称为内网IP

动态公网IP

貌似node5 与 node6 挂了网络通,是动态公网IP(chivier说的)

node5 ip: 202.38.73.26

IPv4封了许多端口(至少ssh的22端口是不行的)

IPv6是直接可以ssh访问的

公网IP是IPv4/IPv6

ipv4是32位地址,分成4段,每段之间都有"."分开,而每段之间有8位,从0-255 最普遍看到的就是ipv4

ipv6是128位地址,每个数目等于4位(0-f)16位进制,4个一组,每段之间由“:”隔开,共有8段,其中如果有连续性的"0" 如fe80:0000:0000:0000:0000:0000:0000:de4f

修改机器的DNS服务器

IPv4DNS服务器能根据IP修改,但是我不知道华为DNS服务器的IP。

ns1.huaweicloud-dns.com:中国大陆各区域DNS地址 ns1.huaweicloud-dns.cn:中国大陆各区域DNS地址 ns1.huaweicloud-dns.net:除中国大陆之外国家或地区DNS地址 ns1.huaweicloud-dns.org:除中国大陆之外国家或地区DNS地址

Further Study

动态公网IP,可以使用nat123动态域名解析解决公网IP不固定的问题

node6配置没用80端口,不能直接IP访问

遇到的问题

还是不能直接访问shaojiemike.top(TTL为300,需要时间?) 第二天可以了。

chivier 建议

https://ngx.hk/2019/01/27/%E4%BD%BF%E7%94%A8acme-sh%E4%B8%8E%E9%98%BF%E9%87%8C%E4%BA%91dns%E7%AD%BE%E5%8F%91lets-encrypt%E7%9A%84%E5%85%8D%E8%B4%B9%E6%95%B0%E5%AD%97%E8%AF%81%E4%B9%A6.html

我用阿里的域名,用这个教程,把我的IP挂到阿里DNS上面去了

参考文献

https://support.huaweicloud.com/qs-dns/dns_qs_0002.html

https://blog.csdn.net/meitesiluyuan/article/details/58588216

https://blog.csdn.net/bennny/article/details/86319768?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs

https://blog.csdn.net/bennny/article/details/82988260

域名价格对比

SSHForward

导言

服务器没网,姜师兄说可以ssh转发网络请求到本地windows

四类ssh转发

SSH 端口转发自然需要 SSH 连接,而SSH 连接是有方向的,从 SSH Client 到 SSH Server 。

而我们所要访问的应用也是有方向的,应用连接的方向也是从应用的 Client 端连接到应用的 Server 端。比如需要我们要访问Internet上的Web站点时,Http应用的方向就是从我们自己这台主机(Client)到远处的Web Server。

本地转发Local Forward

如果SSH连接和应用的连接这两个连接的方向一致,那我们就说它是本地转发。

ssh -L [bind_address:]port:host:hostport <SSH hostname>
ssh -L 3333:127.0.0.1:2333 -vN -f -l shaojiemike 222.195.72.218
debug1: Local connections to LOCALHOST:3333 forwarded to remote address(222.195.72.218) 127.0.0.1:2333

本地转发在本地这台机器上监听一个端口,然后所有访问这个端口的数据都会通过ssh 隧道传输到远端的对应端口上。命令中的 host 和 <SSH hostname> 可以是不同的主机。

远程转发Remote Forward

如果SSH连接和应用的连接这两个连接的方向不同,那我们就说它是远程转发。

ssh -R [bind_address:]port:host:hostport <SSH hostname>

远程转发与本地转发正好相反,打开ssh隧道以后,在远端服务器监听一个端口,所有访问远端服务器指定端口都会通过隧道传输到本地的对应端口上,下面是例子。

动态转发

  • TODO

X转发

  • TODO

实用参数

-C:压缩数据传输。
-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N :不执行脚本或命令,通常与-f连用。
-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-f      Requests ssh to go to background just before command execution.  This is useful if ssh is going to ask for passwords or
             passphrases, but the user wants it in the background.  This implies -n.  The recommended way to start X11 programs at a remote
             site is with something like ssh -f host xterm.

             If the ExitOnForwardFailure configuration option is set to "yes", then a client started with -f will wait for all remote port
             forwards to be successfully established before placing itself in the background.

常见例子

将发往本机的80端口访问转发到174.139.9.66的8080端口

ssh -C -f -N -g -L 80:174.139.9.66:8080 [email protected]

将发往174.139.9.66的8080访问转发到本机的80端口

ssh -C -f -N -g -R 80:174.139.9.66:8080 [email protected]

使用远程管理服务器上的MySQL

ssh -C -f -N -g -L 80:174.139.9.66:8080 [email protected]

一次同时映射多个端口

ssh -L 8888:www.host.com:80 -L 110:mail.host.com:110 -L    25:mail.host.com:25 user@host -N  

反向隧道技术:节假日需要回公司加班。但是公司是内网,使用NAT,所以没办法连回去。

  1. 先在公司机器(LAN_ip)上执行
    ssh -NfR 2222:localhost:22 home_ip
    
    -R : 建立反向连接 将 home_ip port转发
  2. 然后到home_ip上面 ssh localhost -p 2222

端口转发:本机不允许访问www.xxx.com这个网站,但是远程主机(remote_ip)可以。

ssh -f -N -L 31609:www.xxx.com:80 user@remote_ip

现在我们就可以在本地打开 http://localhost:31609 访问www.xxx.com了。

SOCKS代理:本机不允许访问某些网站,但是远程主机(remote_ip)可以,并且公司没有组织你连接remote_ip。

ssh -NfD 8888 user@remote_ip

现在在浏览器socks 5 proxy设置为localhost:8888,所有之前无法访问的网站现在都可以访问了。

假设本地主机A提供了HTTP服务,主机B无网络

ssh -fNgR 80:localhost:80 root@host-B

通过访问 http://host-B 来访问主机A上的HTTP服务了。

如果没有主机B的root账号,则只能远程转发到1024以后的端口号

ssh -fNgR 8080:localhost:80 lige@host-B

通过访问http://host-B:8080 来访问主机A上的HTTP服务

假设本地主机A无网络,主机B提供了HTTP服务

但是由于怕防火墙屏蔽,而不想直接访问

ssh -fNgL 80:localhost:80 root@host-B

ssh_config设置技巧

客户端

.ssh/config修改

Host *
    ControlPersist yes
    ControlMaster auto
    ControlPath /tmp/sshcontrol-%C
    ControlPersist 1d
    # 以上四条配合使用,实现多条ssh连接共享,而且保持1天内ssh存在。再次执行ssh命令几乎秒连
    TCPKeepAlive=yes
    # 发送空TCP包来保持连接,但是可能被防火墙过滤
    ServerAliveInterval 30
    # 表示每隔多少秒(30秒),从客户端向服务器发送一次心跳(alive检测)
    # 心跳具体格式: debug1: client_input_global_request: rtype [email protected] want_reply 1
    ServerAliveCountMax 240 
    # 表示服务端多少次(240次)心跳无响应后, 客户端才会认为与服务器到SSH链接已经断开,然后断开连接。

    Port 443

Host *
   ForwardAgent yes
   # 可以讓本地的 SSH Key 在遠端 Server 上進行轉送,也就是经过跳板机Server1,使用本地key访问Server2,不用把key传到Server1上导致泄露
   # 虽然Server1不会获得key,但是可以使用key。所以该选项不宜用于Host *,应该只添加您信任的服务器以及打算用于代理转发的服务器。
   # 注意跳板机需要设置允许代理转发, /etc/ssh/sshd_config 将AllowAgentForwarding的值设置为yes, 并重启服务
   AddKeysToAgent yes
   ForwardX11 yes
   ForwardX11Trusted yes
   Compression yes
   # 压缩,加快数据传输速度

服务器端

更改ssh服务器的配置文件/etc/ssh/sshd_config

ClientAliveInterval 60
# 默认是0,不发送
ClientAliveCountMax 3

原理同上 重启ssh服务以使配置生效

systemctl restart sshd

服务器端如何将端口绑定到外部地址上

我们可以把这个映射的端口绑定在0.0.0.0的接口上,方法是加上参数-b 0.0.0.0。

同时修改SSH服务器端 /etc/sshd_configGatewayPorts noGatewayPorts yes来打开它。

自动重连/保持长时间连接

Host *
  ServerAliveInterval 60

检查隧道状态

  1. netstat
  2. ps
  3. autossh

实践

服务器网站端口转发到本地

ssh -L 6006:127.0.0.1:6006 -N -f -l acsacom snode6.swangeese.fun

本地网络代理到服务器

ssh -fNgR 7333:127.0.0.1:7890 [email protected]
ssh -fNgR 7333:127.0.0.1:80 [email protected]
  • 7333数字不要太小,以免冲突。
  • 7890是本地clash端口,80也可以。
服务器git下载设置代理端口
export http_proxy=http://127.0.0.1:7333
# wget 正常使用
export all_proxy=socks5://127.0.0.1:7333
# git 正常使用
unset http_proxy
unset all_proxy

特定软件也需要设置代理

git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

git config --global --unset http.proxy
git config --global --unset https.proxy
mac上转发失败

首先看看Windows上的输出

Mac的错误

在完成windows所有输出后,

  1. 首先调用了shell
  2. 错误
debug1: Remote: Forwarding listen address "localhost" overridden by server GatewayPorts
debug1: remote forward failure for: listen 7890, connect 127.0.0.1:7890
Warning: remote port forwarding failed for listen port 7890

猜测应该是已经端口占用了

netstat -nat |grep -i '7233'

解决办法一:换端口

首先,可以选择换端口,换成 7233

sudo lsof -i TCP:7233
1. 进程验证 2. wget验证 3. curl验证(原本会走WLT)

redirecting to http://wlt.ustc.edu.cn

解决办法二:Kill掉相关进程
sudo lsof -i TCP:7890
sudo kill -9 process_id_1 process_id_2 process_id_3
sudo ps -ef | grep 'nc -X' | grep -v grep | awk '{print $2}' | sudo xargs -r kill -9
sudo lsof -i TCP:7233 |grep shaojiemike| awk '{print $2}'|sudo xargs -r kill -9

  • FD: File Descriptor number of
  • 不敢kill师兄的,然后发现并没有用,寄。kill掉师兄的之后就行了,嘻嘻~~ 师兄不要怪我

参考文献

http://blog.sina.com.cn/s/blog_704836f40100lwxh.html

https://blog.csdn.net/xyyangkun/article/details/7025854?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link