导言
Victima 需要使用Podman。先简单学习一下
BitTorrent (简称 BT) 协议是和点对点(point-to-point)的协议程序不同,它是用户群对用户群(peer-to-peer, 或简写为 P2P) 传输协议, 它被设计用来高效地分发文件 (尤其是对于大文件、多人同时下载时效率非常高)。该协议基于HTTP协议,属于TCP/IP应用层。
将文件划分成多块(默认256Kb一块),每块可以从网络中不同的用户的BT客户端处并行下载。
1 | BT 下载的文件都是别人上传给你的。 |
比特彗星,包括其他 BT 软件(迅雷除外,迅雷不是会员会限速,高速通道下载提高的速度一部分就是接触限速后获得的)都不会限制下载速度。
与迅雷不同,BT旨在“人人为我,我为人人”。用户和用户之间对等交换自己手中已有的资源。如果任何一方试图白嫖另外一方的资源,而自己不愿意上传自己的资源,那么那方就会被人视作吸血者而被踢出这个交换,下场是没有人会愿意和你交换数据,你的下载速度也就归零。
如果把上传速度限制为了10KB/s,10KB/s是BitComet上传最低限速,很大时候就这10KB会被包含DHT查询、向Tracker服务器注册,连接用户所产生的上传全部占满。在下载种子的时候,其他用户连上你是只能拿到1~2KB/s甚至一点都没有的。
现在的BT下载客户端都可以做到智能反吸血,所以基本想和交换数据的用户都把你当作Leecher(吸血鬼)Ban(封禁)处理了,故没有下载速度不足为奇。
一般来说,只要预留50KB/s的上传给其他网页浏览、聊天就可以了,在下载时应该尽量把上传留给那些和你交换资源的用户,这样才不会被他们视作你在吸血进而屏蔽你。
如果上传不足,就应该主动限制自己的下载速度,否则单位时间下载量远超过上传量反而会遭来更多的屏蔽,对下载速度提升更加不利。
.torrent
种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置。
sudo XAUTHORITY=/home/qcjiang/.Xauthority qbittorrent
以qBit的docker为例,参考linuxsever的docker-compose如下:(qBit相对于Transmission有多线程IO的优势) 也可以使用其余docker镜像
1 | --- |
默认账号 admin
默认密码 adminadmin
然后通过webUI http://222.195.72.218:8080/
管理。
如果不想网络通过wireguard,而是本地可以如下设置
m站刷上传的时候,发现基本都是对方基本都是通过ipv6下载
uTP是一种基于UDP的协议,它可以根据网络拥塞情况自动调节传输速度,从而减少对其他网络应用的影响。
BT连接是一种基于TCP的协议,它可以保证数据的完整性和可靠性,但是可能会占用较多的网络带宽和资源。
在qBittorrent中,标志U K E P分别表示以下含义:
1 | U:表示你正在上传数据给对方,或者对方正在从你那里下载数据。 |
收集下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。
指一个下载任务中所有文件都被某下载者完整的下载,此时下载者成为一个种子。发布者本身发布的文件就是原始种子。
发布者提供下载任务的全部内容的行为;下载者下载完成后继续提供给他人下载的行为。
上傳資料量 / 下傳資料量的比率,是一種BT的良心度,沒實際作用.(一般为了良心,至少大于1)
BitComet的概念,相对于种子任务的上传能够控制。
长效种子就是你不开启任务做种,只要你启动了比特彗星,软件挂后台,当有其他用户也是用比特彗星下载你列表里的存在的文件时候就会被认为是长效种子 。
.DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。
类似Tracker的根据种子特征码返回种子信息的网络。
在BitComet中,无须作任何设置即可自动连接并使用DHT网络,完全不需要用户干预。
Peer Exchange (PEX), 每个peer客户端的用户列表,可以互相交换通用。可以将其理解为“节点信息交换”。前面说到了 DHT 网络是没有中心服务器的,那么我们的客户端总不能满世界去喊:“我在下载这个文件,快来连我吧.”(很大声)。所以就通过各个 BT 客户端自带的节点去同步路由表实现 DHT 网络连接。
LSD(LPD)就是本地网络资源,内网下载,没什么几把用的东西,可能学校等私有网络好使
網絡業務提供商(Internet Service Provider,簡稱ISP),互聯網服務提供商,即向廣大用户綜合提供互聯網接入業務、信息業務、和增值業務的電信運營商。
1 | bittorrent.anti_leech_min_byte |
需要
文件下载后不能移动,不能删除,不能重命名(但可以在软件内改)。 一但BT 软件找不到文件,或删除了任务,就无法做种上传了。
可以在Bitcomet高级设置里设置时段限速
分享上传也需要频繁读取硬盘。
以Bitcomet为例,该软件就是通过磁盘缓存技术减小频繁随机读写对硬盘的损伤。
磁盘缓存就是利用物理内存作为缓冲,将下载下的数据先存放于内存中,然后定期的一次性写入硬盘,以减少对硬盘的写入操作,很大的程度上降低了磁盘碎片。
因为通常我们设置内存(磁盘缓存)为每任务XX兆,意味着,这个缓冲区可以存放数兆甚至几十兆的“块”,基本上可以杜绝碎片了。
现在BT软件都是自动设置缓存的,它是根据你物理内存的大小分配的。
路由器下载?
基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
相对于传统虚拟机,Docker 没有硬件虚拟化/hypervisor,可以运行在物理机、虚拟机, 甚至嵌套运行在 Docker 容器内,并且其不携带操作系统的,会轻巧很多。而且调用资源时利用 Docker Engine
去调用宿主的的资源,这时候过程是虚拟内存->真正物理内存。
{ align=left }
{ align=right }
1 | # 创建 Portainer Server 将用于存储其数据库的卷 |
1 | # 安裝 docker |
First, write an installation script for all of your dependencies. This script is written with Docker specific syntax and is called a Dockerfile(1).
{ .annotate }
`Images > Build image`
查看容器出错日志:docker logs --tail 1000 1fed0d4782cf
最后一项是容器ID
在构建 Docker 镜像时,如果需要通过代理访问外部网络资源(例如,安装软件包或依赖项),你可以通过以下几种方式设置代理:
https://ghcr.io/v2/“: x509: certificate signed by unknown authority”
编辑 Docker 配置文件 /etc/docker/daemon.json,添加以下内容:
1
2
3
{
"insecure-registries": ["ghcr.io"]
}
重启 Docker 服务:
1
sudo systemctl restart docker
docker push
), docker pull
).[^4]Then, run these commands to build a Docker image of your environment by using docker build
.
1 | docker build --network=host\ |
You also can set the proxy in the Dockerfile.[^6]
1 | ENV http_proxy "http://127.0.0.1:7890" |
镜像的完整 tag 不仅包含镜像名字, 还指明了镜像从哪里来, 要到哪里去, 就像一个 URL。可以通过 -t 选项指定镜像的标签信息,譬如:
1 | $ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] |
Once successfully built, you can instantiate copies of this image as many times as you would like by using docker run
to create Docker containers.
[^2]
volumes allow me to interact with data outside of the docker container.
docker info |grep HTTP
查看。宿主机往往因为OS的原因,提供不了合适的GCC版本,为此在docker里编译是一种便捷的选择。
docker/docker_connect.sh
或者 https://blog.csdn.net/winter2121/article/details/118223637在Linux服务器上使用Docker运行图形化界面的应用程序。为了实现这一点,您需要使用一个特别配置的Docker镜像,该镜像支持图形用户界面(GUI)。这通常涉及到安装一个桌面环境和任何必要的图形驱动程序。
以下是实现这一目的的基本步骤:
这里是一个示例的Dockerfile,用于创建一个带有图形界面的Ubuntu容器:
1 | FROM ubuntu:latest |
在这个Dockerfile中,ubuntu-desktop
和vnc4server
被安装,以便提供图形界面和VNC访问。您需要创建一个VNC启动脚本(vnc_startup.sh
),以启动VNC服务器并运行桌面环境。
请注意,运行图形界面的容器通常比标准的、无GUI的容器更加资源密集,并且可能需要更多的存储空间和内存。此外,确保遵循最佳安全实践,特别是在暴露VNC或其他远程访问服务时。
https://cloud.tencent.com/developer/article/1395434
[^1]: How can Docker run distros with different kernels?
[^2]: Docker Commands for Managing Container Lifecycle (Definitive Guide)
[^4]: Developing in Docker
[^6]: https://cloud.tencent.com/developer/article/1806455 & http://www.debugself.com/2018/01/17/docker_network/
bcdedit /set hypervisorlaunchtype auto
参考教程安装 WSL和旧版 WSL 的手动安装步骤
1 | # 查看当前版本 |
注意:用命令行运行来修改默认安装路径(重命名install.exe),参考教程
1 | .\Docker.exe install --installation-dir="E:\commonSoftware\Docker" |
安装完之后运行设置
1 | Error response from daemon: container df6ee73697883e8e09edd65404e1fcc19a2b4bfb49212c754a8b3ef9741d7bda: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/475c350b02589ce2cb5ef30f0619ed3aeaba409c56d87191b8cbbd00ef618fe3: read-only file system |
需要管理员运行docker
WSL还是超级占用C盘
暂无
暂无
https://blog.csdn.net/Antarctic_Bear/article/details/123489609
我們使用 kylemanna/docker-openvpn 來實作,因為 dockerhub 上只有 x86 image,如果是 arm 平台則需要自己 build(x86 可跳過)
clone repo 後,直接 build
1 | $ git clone https://github.com/kylemanna/docker-openvpn |
如果發生找不到 aarch64/alpine:3.5
的錯誤,修改 Dockerfile 中的 base image 為
1 | FROM alpine:3.15.4 |
或更新的 alpine 版本即可
https://koding.work/10-minutes-build-open-vpn-server/
https://taichunmin.idv.tw/blog/2018-05-23-docker-openvpn.html
以README为主
1 | # shaojiemike @ node5 in ~ [23:53:42] C:125 |
CA(certificate authority.)的私钥密码
1 | # shaojiemike @ node5 in ~ [23:55:47] |
1194貌似有人用了
1 | # shaojiemike @ node5 in ~ [0:02:06] |
在1195启动服务失败,还是1194
1 | # shaojiemike @ node5 in ~ [0:16:46] |
产生客户端证书,和ovpn文件
1 | # shaojiemike @ node5 in ~ [0:07:27] C:2 |
还是不行,奇怪
ping不通的原因是,脚本默认是8号端口,改成0号教育网端口就行了。
1 | D:\PowerShell> ping -r 9 -w 10000 222.195.72.114 |
First ensure that your apt supports the https transport:
1 | # apt install apt-transport-https |
Install the OpenVPN repository key used by the OpenVPN 3 Linux packages
1 | # curl -x http://$proxy_addr:$proxy_http_port -fsSL https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/openvpn-repo-pkg-keyring.gpg |
Then you need to install the proper repository. Replace $DISTRO with the release name depending on your Debian/Ubuntu distribution.
1 | # curl -x http://$proxy_addr:$proxy_http_port -fsSL https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-$DISTRO.list >/etc/apt/sources.list.d/openvpn3.list |
Supported distributions:
Distribution | Release | Release name ($DISTRO) | Architecture | DCO support |
---|---|---|---|---|
Ubuntu | 20.04 | focal | amd64, arm64* | yes* |
Ubuntu | 21.10 | impish | amd64, arm64* | yes* |
Ubuntu | 22.04 | jammy | amd64, arm64* | yes* |
And finally the openvpn3 package can be installed
1 | # apt install openvpn3 |
apt需要代理看 apt-get install proxy
要提前保留ipv6, 没有设置“流量走当前机器”ssh会断联
Once you’ve moved the file to your Linux system, you can import it.
1 | openvpn3 config-import --config ${client.ovpn} |
You can start a new VPN session:
1 | openvpn3 session-start --config ${client.ovpn} |
You can manage a running VPN session:
1 | openvpn3 sessions-list |
netplan 的 rule from to table
ip route
ip rule指令学习
iptables
暂无
基于kylemanna/docker-openvpn
https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-linux/
127.0.0.1:7890
上的数据+.*
便等价于redir-host模式1 | # RESTful web API listening address |
假如服务器和笔记本在LAN下,笔记本的clash软件只需要打开LAN就可以给服务器代理了,是最简单方便的方式。
由于UGREEN NAS一直开机,作为代理节点很适合。
首先注意修改代理机场的文件config.yaml
的0.0.0.0:9090
,以便haishanh/yacd
使用。
1 | mixed-port: 7890 |
dreamacro/clash
^1haishanh/yacd
下载可执行文件
1 | wget https://github.com/Dreamacro/clash/releases/download/v1.11.8/clash-linux-amd64-v1.11.8.gz |
Country.mmdb
文件,Country.mmdb
文件利用 GeoIP2
服务能识别互联网用户的地点位置,以供规则分流时使用。./clash
命令) 会自动下载(会下载至 /home/XXX/.config/clash
文件夹下)。自动下载可能会因网络原因较慢,可以访问该链接手动下载。根据订阅链接配置文件
1 | cd ~/.config/clash |
成功结果
1 | # shaojiemike @ node6 in ~/Download [10:22:54] C:130 |
http://clash.razord.top/#/proxies
输入
1 | Host: node6.swangeese.fun |
查看config.yaml
,发现是空
1 | mixed-port: 7890 |
[^2]: Docker 安装 Clash 并对外提供代理服务
https://blog.iswiftai.com/posts/clash-linux/
https://einverne.github.io/post/2021/03/linux-use-clash.html