前言
本着记录的原则写下本文,可能会有错误或者缺漏。本文内容有相当一部分来自网络,如有侵权,请及时联系我。
网卡驱动缺失
因为ubuntu最新的lts内核还是5.15,一些网卡的驱动还没有(比如ax1675i)。解决方法一般有两个,一个是更新内核,另一个就是编译驱动到内核。
- 更新内核:升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国-知乎
- 编译驱动:
1
2
3
4
5
6
7
8sudo apt install git build-essential linux-headers-generic
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi
make defconfig-iwlwifi-public
sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config
make
sudo make install
reboot引用自ubuntu论坛Ubuntu 18.04 未发现wifi适配器
clash的使用
- clash的启动:
在clash二进制文件所在的目录打开终端,执行以下命令下载配置文件如果权限不足则执行以下命令提权1
wget -O config.yaml "https://api.sub-300.club/link/0vsALy9MsMyBad9T?clash=3"
最后执行二进制文件clash1
chmod +x 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
15proxy () {
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
}proxy
或noproxy
进行代理的设置或者取消。需要注意的是,curl
仅仅是为了测试网络连接,后续如果因为一些原因报错可以忽视,不影响使用。
tcpdump的使用
提示的语法:
1
2
3
4
5
6
7
8Usage: 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 | [Unit] |
再创建一个定时器
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