分类: 未分类

  • intel软路由(倍控G31主板)安装驱动

    显卡驱动
    https://www.intel.cn/content/www/cn/zh/support/detect.html
    网卡驱动
    https://www.intel.cn/content/www/cn/zh/download/15084/intel-ethernet-adapter-complete-driver-pack.html
    芯片组驱动
    https://www.intel.com/content/www/us/en/download/19347/chipset-inf-utility.html
    serial io
    https://www.intel.cn/content/www/cn/zh/download/780244/intel-serial-io-driver-for-windows-10-64-bit-windows-10-iot-enterprise-and-windows-11-for-intel-nuc-13-compute-element-elm13ib-x.html?wapkw=Serial%20IO%20Driver%20for%20Windows%2011

    Views: 62

  • openwrt安装Docker

    安装这几个

    执行
    cp /etc/config/dockerd-opkg /etc/config/dockerd
    修改docker配置或仓库地址在这个文件中配置
    然后重启(重启前docker不能正常工作)

    Views: 148

  • OpenWrt磁盘扩容

    我的测试结果是要扩充磁盘只能选择ext4分区,squashfs无法支持磁盘扩容,也不能挂载其它分区到/或/overlay,挂载到其它位置又起不到扩容的目的。这是一个古老bug导致的,https://github.com/openwrt/openwrt/issues/9015 ,openwrt并没有从rootfs中读取fstab而是从rom中。
    我用的是openwrt-23.05.0-x86-64-generic-ext4-combined-efi.img这个镜像

    1. 安装工具

    安装block-mount并重启后页面上才有挂载点管理功能

    opkg install block-mount parted
    reboot
    
    1. 添加磁盘


    添加磁盘而不是添加分区的原因是为了支持固件升级,升级后第一块磁盘除了配置文件都会被覆盖掉
    parted /dev/sdb
    mktable gpt
    mkpart primary ext4 0% 100%
    quit
    mkfs.ext4 -L extroot /dev/sdb1

    1. 挂载磁盘

    按如下配置,添加一个挂载点

    然后执行

    mount /dev/sdb1 /mnt
    tar -C /overlay -cvf - . | tar -C /mnt -xf - # 或 tar -C /rom -cvf - . | tar -C /mnt -xf - 取决于安装类型
    umount /mnt
    reboot
    

    转移文件到新磁盘是因为,如果刷固件的话原root分区中的数据会丢失,如果做的有配置或安装的有软件的话会导致刷固件后系统出问题,如果没有安装任何东西也可以不转移数据。
    重启后可以看到已经挂载成功


    刷固件后第一次启动extroot分区不会自动挂载,再重启一下就好了。

    基于命令行的实现方法:
    https://openwrt.org/docs/guide-user/additional-software/extroot_configuration

    Views: 78

  • PVE安装OpenWrt

    1. 创建虚拟机




    这里创建的efi磁盘稍后要删除掉,不然无法启动

    磁盘要删掉





    2. 导入openwrt镜像

    进入pve控制台执行以下命令

    wget https://mirror.sjtu.edu.cn/openwrt/releases/23.05.0/targets/x86/64/openwrt-23.05.0-x86-64-generic-squashfs-combined-efi.img
    gzip -d openwrt-23.05.0-x86-64-generic-squashfs-combined-efi.img
    qm disk import 117 openwrt-23.05.0-x86-64-generic-squashfs-combined-efi.img data-lvm
    

    命令执行结果如下图

    上面未使用的磁盘就是刚才导入的磁盘



    3. 设置引导


    4. 启动并设置openwrt


    进入shell后执行如下命令

    passwd
    ip addr del 192.168.1.1/24 dev br-lan
    ip addr add 192.168.33.30/24 dev br-lan
    ip route add default via 192.168.33.1
    echo nameserver 192.168.33.1 > /etc/resolve.conf
    sed -i 's/downloads.openwrt.org/mirror.sjtu.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf
    

    然后浏览器打开openwrt做其它设置

    Views: 41

  • dnsmasq解析本地域名的若干方法

    写这个主要是因为如果在公网上配置了IPv6地址的话本地IPV4解析就失效了
    – 方法1,用–address
    2.86版本以后改变了–address=/example.com/1.2.3.4配置的行为,A记录以外的其它记录类型仍然 会向上游转发,这在以前版本是不会的,要保持与以前相同的行为要使用如下写法:
    --address=/example.com/1.2.3.4 --local=/example.com/
    – 方法2,用hosts
    --server=/example.com/
    然后在hosts文件中添加
    1.2.3.4 example.com
    在华硕路由器上的hosts文件是/jffs/configs/hosts.add
    – 方法3,用–dynamic-host添加动态IPV6地址
    –dynamic-host example.com,0::1.2.3.4,br0
    dnsmasq会从br0上获取接口地址添加到ip地址前缀中

    Views: 86

  • frp的xtcp打洞测试

    • 在windows上无论如何都会失败(windows成功率更低)
      后来发现只是我这台电脑有问题,不过仍然说明兼容性并不好
    • xtcp依懒于stun,然而并没有稳定的stun服务器,自建的stun服务器都用不了(可能需要开放全部端口才行)
      国内可用的stun服务器stun.miwifi.com:3478,stun.qq.com:3478
    • stun测试
      执行命令./frpc nathole discover --nat_hole_stun_server stun.miwifi.com:3478,如果 正确返回IP端口号则说明stun能正确工作,如果不能xtcp大概率也不会通
    • 从结果来看xtcp的打洞成功率远低于wireguard+wgsd

    Views: 170

  • WireGuard部署及NAT打洞

    主要参考文档:

    wireguard文档
    相关中文翻译
    – https://blog.51cto.com/u_15077562/4574884
    – https://icloudnative.io/posts/wireguard-docs-theory/
    nat穿透
    相关中文翻译
    – https://xie.infoq.cn/article/3f68cde0163b359b13fa1a8f0
    – https://icloudnative.io/posts/wireguard-endpoint-discovery-nat-traversal/

    总结

    • nat穿透的时候需要NAT后的节点共同连到一个有公网IP的节点上
    • 在nat背后的两个节点相连的时候需要至少一个是全椎形NAT,或者双方都为限制椎形
    • coredns部署在具有公网IP的节点上
    • wgsd_client需要在nat背后的节点上定时运行,可以5分钟或10分钟一次
    • wgsd的代码可以自己编译,尤其在windows上只能自己编译,在对应目录中运行go build就可以了
    • nat状态表的过期时间一般为2分钟,所以keepalive周期最好在1分钟以内
    • nat后节点不需要与公网节点能正常通信,只需要能向公网节点发起连接就行,所以coredns最好在公网开放端口,这样在不能与公网节点通信时也能用
    • 运营商级NAT都不是全椎形
    • nat类型探测工具
      https://github.com/HMBSbige/NatTypeTester
    • nat类型介绍
      https://support.huawei.com/hedex/hdx.do?docid=EDOC1100331440&id=ZH-CN_CONCEPT_0183792552
      https://zhuanlan.zhihu.com/p/657998085

    Views: 820

  • windows10/11禁用和开启Hyper-V

    1. 禁用
      bcdedit /set hypervisorlaunchtype off
    2. 开启
      bcdedit /set hypervisorlaunchtype auto

    Views: 61

  • 生成HPE ILO证书

    使用.NET远程控制台的时候发现会有证书错误,导致无法使用.NET远程控制台,所以用acme.sh生成正确的证书
    登录ILO后找到存取管理->安全性,然后点击自定义证书,填写正确的域名,生成CSR,等一会儿再点一次生成CSR,把CSR保存下来
    然后执行命令

    acme.sh  --signcsr --csr dl360.csr --dns dns_gd
    acme.sh --install-cert -d dl360.hetao.me --fullchain-file /opt/certs/dl360.hetao.me/fullchain.pem --cert-file /opt/certs/dl360.hetao.me/dl360.hetao.me.pem
    cd /opt/certs/dl360.hetao.me
    sed '4r dl360.hetao.me.pem' ilocert.cfg>dl360cert.cfg
    hponcfg -f dl360cert.cfg
    


    ilocert.cfg的内容如下

    <RIBCL VERSION="2.0">
    <LOGIN USER_LOGIN = "adminname" PASSWORD = "password">
    <RIB_INFO MODE = "write">
    <IMPORT_CERTIFICATE>
    <!-- Replace the following text and comments with the certificate -->
    <!-- INCLUDE the full header and full footer of the certificate -->
    </IMPORT_CERTIFICATE>
    <!-- The iLO will be reset after the certificate has been imported. -->
    <RESET_RIB/>
    </RIB_INFO>
    </LOGIN>
    </RIBCL>
    

    也可以用命令行操作

    然后会生成证书文件dl360.hetao.me.pem(不是fullchain.pem),把里面的证书再粘到ILO中,ILO会自动重置,ILO再次启动后就好了,.NET远程控制台也能用了。
    注意:
    ilo固件刷新后需要重新生成CSR,不然导入证书时会不识别

    Views: 59

  • pve(KVM)中抑制ignored rdmsr消息

    这个问题跟nvidia显卡虚拟化有关,执行以下命令可解决
    echo “options vfio_iommu_type1 allow_unsafe_interrupts=1” > /etc/modprobe.d/iommu_unsafe_interrupts.conf && update-initramfs -u -k all

    参考:
    https://pve.proxmox.com/wiki/PCI_Passthrough#NVIDIA_Tips

    Views: 35