少女祈祷中...

前言

本着记录的原则写下本文,可能会有错误或者缺漏。本文内容有相当一部分来自网络,如有侵权,请及时联系我。

网卡驱动缺失

因为ubuntu最新的lts内核还是5.15,一些网卡的驱动还没有(比如ax1675i)。解决方法一般有两个,一个是更新内核,另一个就是编译驱动到内核。

clash的使用

  • clash的启动:
    在clash二进制文件所在的目录打开终端,执行以下命令下载配置文件
    1
    wget -O config.yaml "https://api.sub-300.club/link/0vsALy9MsMyBad9T?clash=3" 
    如果权限不足则执行以下命令提权
    1
    chmod +x clash
    最后执行二进制文件clash
    1
    ./clash -d .
    其中-d .为配置文件在当前目录
    可以在.bashrc中添加alias Clash_Enable="clash路径 -d 配置文件路径",然后就可以直接在终端执行Clash_Enable启动。
    如果顺利的话就可以进入Clash Dashboard进行更换节点的操作了。
    端口在配置文件中查看
  • 在ubuntu(gnome)的使用:只需要去设置栏添加手动代理即可。
  • 在ubuntu(xfce)的使用:
    • 浏览器中(以firefox为例),在clash启动后进入设置配置网络代理。
    • 命令行中apt等软件的代理:
      ~/.bashrc中写入以下内容:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      proxy () {
      export ALL_PROXY="socks5://127.0.0.1:7891"
      export all_proxy="socks5://127.0.0.1:7891"
      echo -e "Acquire::http::Proxy \"http://127.0.0.1:7890\";" | sudo tee -a /etc/apt/apt.conf > /dev/null
      echo -e "Acquire::https::Proxy \"http://127.0.0.1:7890\";" | sudo tee -a /etc/apt/apt.conf > /dev/null
      curl https://ip.gs
      }

      noproxy () {
      unset ALL_PROXY
      unset all_proxy
      sudo sed -i -e '/Acquire::http::Proxy/d' /etc/apt/apt.conf
      sudo sed -i -e '/Acquire::https::Proxy/d' /etc/apt/apt.conf
      curl https://ip.gs
      }
      保存后执行proxynoproxy进行代理的设置或者取消。需要注意的是,curl仅仅是为了测试网络连接,后续如果因为一些原因报错可以忽视,不影响使用。

tcpdump的使用

  • 提示的语法:

    1
    2
    3
    4
    5
    6
    7
    8
    Usage: tcpdump [-AbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [--count]
    [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
    [ -i interface ] [ --immediate-mode ] [ -j tstamptype ]
    [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ]
    [ -r file ] [ -s snaplen ] [ -T type ] [ --version ]
    [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
    [ --time-stamp-precision precision ] [ --micro ] [ --nano ]
    [ -z postrotate-command ] [ -Z user ] [ expression ]
  • 菜鸟教程整理的参数说明

    -a 尝试将网络和广播地址转换成名称。
    -c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
    -d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
    -dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
    -ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
    -e 在每列倾倒资料上显示连接层级的文件头。
    -f 用数字显示网际网络地址。
    -F<表达文件> 指定内含表达方式的文件。
    -i<网络界面> 使用指定的网络截面送出数据包。
    -l 使用标准输出列的缓冲区。
    -n 不把主机的网络地址转换成名字。
    -N 不列出域名。
    -O 不将数据包编码最佳化。
    -p 不让网络界面进入混杂模式。
    -q 快速输出,仅列出少数的传输协议信息。
    -r<数据包文件> 从指定的文件读取数据包数据。
    -s<数据包大小> 设置每个数据包的大小。
    -S 用绝对而非相对数值列出TCP关联数。
    -t 在每列倾倒资料上不显示时间戳记。
    -tt 在每列倾倒资料上显示未经格式化的时间戳记。
    -T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
    -v 详细显示指令执行过程。
    -vv 更详细显示指令执行过程。
    -x 用十六进制字码列出数据包资料。
    -w<数据包文件> 把数据包数据写入指定的文件。

  • 具体使用
    开启tcpdump之后默认抓取的网络为当前网络。
    抓取并存储为result.cap到当前目录:

    1
    sudo tcpdump -w result.cap

    保存后的文件可打开wireshark进行更详细的报文分析。
    使用tcpdump打开.cap文件:

    1
    sudo tcpdump -r result.cap

    可用|grep进行过滤输出,但无法在存储时进行过滤存储。

wireshark的使用

  • 下载和说明
    wireshark是一个开源的软件,在windows、linux平台均可下载。在linux上有命令行的版本和图形化的版本。
    linux安装(默认全部安装):

    1
    sudo apt install wireshark

    如果无法启动的话,可能是没安装图形化界面,再执行一次安装wireshark-common就行了。

  • 过滤的语法
    过滤源地址或目的地址为ip_a之间交换的包:

    1
    ip.src==ip_a or ip.dst==ip_a

    过滤主机ip为ip_a的包:

    1
    ip.host==ip_a

    过滤ip为ip_a的包:

    1
    ip.addr==ip_a

    直接输入协议名称则过滤该协议,如Tcp、UDP等。

设置自动重启

  • 创建一个服务
    1
    sudo vim /etc/systemd/system/reboot.service

输入下面内容

1
2
3
4
5
6
7
8
9
[Unit]
Description=Reboot Service

[Service]
Type=oneshot
ExecStart=/sbin/reboot

[Install]
WantedBy=multi-user.target
  • 再创建一个定时器

    1
    sudo vim /etc/systemd/system/reboot.timer

    输入下面内容

    1
    2
    3
    4
    5
    6
    7
    8
    [Unit]
    Description=Reboot Timer

    [Timer]
    OnCalendar=*-*-* 02:30:00

    [Install]
    WantedBy=timers.target
  • 启动定时器

    1
    sudo systemctl enable --now reboot.timer
  • 查看定时任务

    1
    systemctl list-timers

Linux设置定时重启