分类: 技术

其实我也是个程序猿

  • 宝塔和XUI共存方案

    宝塔和XUI共存方案

    x-ui是一个搭建节点的工具,有一键安装脚本,可以快速的部署。但是如果我们经济有限的话,这个服务器不仅要有x-ui还要有自己搭建的网站。这就得用我的这种搭建过程了。

    第一步:安装宝塔

    首先要将宝塔安装上,这就不用多说了,自己去网站找到适合自己系统的安装脚本就Ok了。

    第二步:创建站点

    新建一个静态站点并且为网站配置ssl,这个域名是为了以后x-ui面板伪装配置的。

    第三步:安装X-UI

    这里直接一键脚本安装,没什么难度

    bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

    第四步:登录X- UI修改后台目录

    第五步:设置宝塔反代

        location ^~ /main/ { #(修改为你的xui管理面板路径)
            proxy_pass http://127.0.0.1:54321/HJgj/; #(修改为你的xui管理面板端口和路径)
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location /jgvgk { #(修改为你的ws传输协议路径)
            proxy_redirect off;
            proxy_pass http://127.0.0.1:12896; #(修改为你的协议端口)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $http_host;
            proxy_read_timeout 300s;
           # Show realip in v2ray access.log
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

    设置完就可以通过域名:端口号\main\访问了。

  • Debian12/11/10,如何启用或关闭 BBR

    Debian12/11/10,如何启用或关闭 BBR

    什么是 BBR

    BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。

    BBR解决了两个问题:

    • 再有一定丢包率的网络链路上充分利用带宽,非常适合高延迟,高带宽的网络链路。
    • 降低网络链路上的 buffer 占用率,从而降低延迟,非常适合慢速接入网络的用户。

    互联网曾广泛使用基于丢包的拥塞控制算法,例如 Reno(Jac88,Jac90,WS95 ,RFC5681)和 CUBIC(HRX08,draft-ietf-tcpm-cubic),这类算法认为丢包和拥塞是等效的。长久以来这类算法都运作的很好,但这并不能说明他们是绝对正确的,这种良好的表现是由于网络交换机和路由器的缓冲区都十分适配当时的网络带宽。而一旦发送者的发送速率足够快,缓冲区便会被快速填满,进而引发丢包。

    实际上丢包并不等效于拥塞。拥塞可以被看作是一种在网络路径中,传输中的数据量始终大于带宽-时延积的场景。随着互联网的不断发展,丢包现象在非拥塞场景下也频繁发生。而基于丢包的拥塞控制策略给网络带来了源源不断的问题:

    1. 浅缓存:在浅缓存场景下,丢包往往发生在拥塞之前。高速、长距离的现代网络,搭配上消费级的浅缓存交换机,基于丢包的拥塞控制算法可能会导致极其糟糕的吞吐量,而这种现象则归咎于这类算法对于丢包的过激反应。流量突发引起的丢包会使发送速率乘性递减(这种丢包现象在空闲网络中也会频繁发生)。这种动态特性,使得基于丢包的拥塞控制算法在实际应用中很难对网络带宽进行充分利用:维持10Gbps/100ms RTT的网络,必须要求其丢包率在0.000003%以下。而更为实际的1%的丢包率,则会导致其只能维持在3Mbps/100ms(无论是瓶颈带宽的性能如何)。
    2. 深缓存:在有着深缓存的瓶颈链路中,拥塞往往发送在丢包之前。在现今的的边缘网络中,基于丢包的拥塞控制算法对众多最后几英里的设备,进行了深缓存的反复填充,引发了不必要的数秒级的排队延时,也就是“缓冲膨胀”的问题。

    BBR拥塞控制算法使用了另类的方式,不用丢包去衡量拥塞是否发生,而是直接对网络建模来避免以及应对真实的拥塞(它使用网络测量来估计带宽和丢包率。它计算可以通过网络发送数据而不会导致拥塞或数据包丢失的最大速率。BBR 通过跟踪网络的往返时间 (RTT) 和在任何给定时间传输的数据量来实现这一点)。

    为什么使用 BBR

    BBR 可以通过减少数据包丢失和增加吞吐量来显著提高网络的速度和可靠性,BBR 非常适合需要高吞吐量和低延迟的应用程序。

    在 Debian 上启用 BBR 是一个非常简单的过程,我们仅需几步即可,建议使用 Debian 的伙伴都启用以下 BBR。

    如何启用 BBR

    本教程基于 Debian12,理论上 Debian10、11也同样适用,其他版本的 Debian 需要自行判断。

    我们先来输入如下命令检查一下你运行的系统是否支持 BBR,输入后如果界面没有任何输出则表示你的系统当前支持 BBR,如显示其它错误信息则表示不支持,理论上来说内核版本高于4.9就支持使用 BBR,如果低于4.9可以自行升级内核版本。

    sudo modprobe tcp_bbr

    如果你的系统支持 BBR,可以输入以下命令来查看当前是否已经启用了 BBR。

    sudo sysctl net.ipv4.tcp_congestion_control

    如果已经启用,界面会输出如下提示,无输出则表示未启用。

    net.ipv4.tcp_congestion_control = bbr

    如果未启用且支持 BBR,请输入如下命令,下面的命令会将默认排队规则设置为 fq 并启用 BBR 作为拥塞控制算法。

    sudo sh -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf' sudo sh -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'

    接着输入以下命令使其保存并生效。

    sudo sysctl -p

    至此,Debian 已经启用 BBR,为验证 BBR 是否启用成功,我们可以使用下面的验证命令。

    sudo sysctl net.ipv4.tcp_congestion_control

    或者

    lsmod | grep bbr

    界面输出下面几种提示皆表示已启用 BBR。

    net.ipv4.tcp_congestion_control = bbr net.ipv4.tcp_available_congestion_control = bbr cubic reno net.ipv4.tcp_available_congestion_control = reno cubic bbr tcp_bbr   20480   1

    如何关闭 BBR

    编辑 /etc/sysctl.conf 文件,将 net.core.default_qdisc = fq 以及 net.ipv4.tcp_congestion_control = bbr 这两行使用 # 号注释掉,然后执行如下命令。

    sudo sysctl -p

    最后重启一下服务器。

  • 使用iperf3使用进行测速本机和vps之间传输速度

    使用iperf3使用进行测速本机和vps之间传输速度

    介绍

    iperf3是测速、打流用的一款软件,可以测两点之间的网速,测试本地网卡的带宽,等等,有的朋友可能也用过,不多说了。

    服务器端安装方法

    debian系统可以直接使用apt进行安装

    apt install iperf3

    本机安装

    我这里是Mac系统,直接使用brew进行安装,如果没有安装brew先安装

    安装brew后运行brew install iperf3安装

    开始测速

    小鸡采用服务器模式

    iperf3 -s

    本地采用客户端模式

    iperf3 -c x.x.x.x -t 30 -P 10 -R

    -c:指定地址
    -t:测试多少秒,不加-t参数默认10秒
    -P:指定线程数(数值越大越接近真实带宽)
    -R:测试下载,不加-R参数是测试上传

  • Debian关闭IPv6的方法

    Debian关闭IPv6的方法

    尽管IPv6是互联网的新基石,有着数量多的优势,但是目前很多时候IPv6的支持并不完整,有时候会因为IPv6遇到一些奇奇怪怪的兼容性问题。于是就需要关闭IPv6而强制使用IPv4进行互联网连接。
    现给出两个方法,本质上都是通过改写sysctl实现的,第一种是在sysctl.d中新加入配置文件,第二中是直接修改sysctl.conf配置文件,推荐使用第一种从而避免误操作影响其他配置文件。

    方法一:在sysctl.d中新加入配置文件

    /etc/sysctl.d/文件夹中新建disable-ipv6.conf,并写入配置

    cd /etc/sysctl.d/
    touch disable-ipv6.conf
    echo net.ipv6.conf.all.disable_ipv6=1 > disable-ipv6.conf

    使用以下命令运行配置文件

    sysctl -p -f /etc/sysctl.d/disable-ipv6.conf

    如果使用ip a命令,在输出中没有发现IPv6地址,则说明成功关闭了IPv6功能。

    方法二:直接修改sysctl.conf配置文件

    打开/etc/sysctl.conf,在Uncomment the next line to enable packet forwarding for IPv6前一行添加以下三行内容:

    net.ipv6.conf.all.disable_ipv6=1net.ipv6.conf.default.disable_ipv6=1net.ipv6.conf.lo.disable_ipv6=1net.ipv6.conf.ens3.disable_ipv6 = 1

    注意ens3这个,由于每个设备的网卡名字都有可能不同,需要使用ip a命令查找一下具体的名称以替换掉ens3
    使用以下命令运行配置文件:

    sysctl -p

    如果使用ip a命令,在输出中没有发现IPv6地址,则说明成功关闭了IPv6功能。