网络的早期发展历史:
最早人们开发了两套网络硬件技术进行机器间的信息交流,是Ethernet和Token-Ring,但这两个系统互相不同,后来人们发展了阿帕网这个软件系统使得两套系统间的信息可以互通。当发展出来TCP/IP协议后,因特网也就成型了。
查找文件的命令
# 在<dir>路径下查找<filename>
> find <dir> -name <filename>
关于linux文件系统分类标准(FHS, Filesystem Hierarchy Standard)可以参考:
鳥哥的 Linux 私房菜 -- 第五章、Linux 的檔案權限與目錄配置 (vbird.org)
df
命令查看disk usage of file system,du
是disk usage,查看当前目录大小
x# 易易读单位查看磁盘空间(使用情况和剩余情况)
> df -h
# 查看目录的大小
> df -sh <dir>
xxxxxxxxxx
> adduser
xxxxxxxxxx
> visudo
# 然后修改文件
root ALL=(ALL) ALL # 先找到这一行
<username> ALL=(ALL) ALL # 再添加这一行
# 保存后,确保文件语法正确
> visudo -c
不建议直接修改
/etc/sudoers
文件!
关于sudo的参考资料:
将ubuntu18重装后,重新配置服务器。想要实现的功能是:
笔记本电脑需要进行无线网络连接,同时要开机自动连接。
xxxxxxxxxx
# 查看无限网卡的设备名
> sudo ifconfig
# 或者是
> sudo iwconfig
像我的oldman(老电脑)上的无线网卡名字就叫wlp6s0
。
然后使用wpa_supplicant进行无线网络连接:
xxxxxxxxxx
# 如果没有安装
sudo apt install wpasupplicant
# 首先设置wifi名称和密码,保存在wpa_supplicant.conf中,路径推荐设为wpa_supplicant目录。
> sudo wpa_passphrase "$ESSID":"$PASSWORD" | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
# 开启并连接wifi, $WifiDevice是无线网卡设备名
> sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i $WifiDevice
# 此时会在前端输出很多信息,注意 Associated with <xxx>还有 Connection to <xxxx> completed出现时说明连接成功了
# 验证能够正确运行,ctrl+C中止进行,重新输入命令让其在后端维持
> sudo wpa_supplicant -B -c /etc/wpa_supplicant/wpa_supplicant.conf -i $WifiDevice
然后需要分配ip地址,才能够在局域网中被访问。
xxxxxxxxxx
# 还需要分配ip地址,通常wifi路由都是DHCP自动分配ip地址的。
> sudo dhclient $WifiDevice
# 输出分配到的ip地址
> sudo ip addr show $WifiDevice
此时可以从局域网中的另一台电脑ssh到这台主机了。
该部分参考Connect to Wi-Fi From Terminal on Ubuntu 18.04/20.04 with WPA Supplicant
如果想要开机自动配置,需要写连接脚本到rc.local
文件中,看下面一节。
ubuntu中可以将脚本写到/etc/rc.local
中,在执行完所有开机程序后,自动执行该文件中的命令。
root
,所以不需要担心权限的问题。exit 0
前面示例文件
xxxxxxxxxx
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
wpa_supplicant -B -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlp6s0
dhclient
exit 0
xxxxxxxxxx
# 设定开机默认cli模式
> systemctl set-default multi-user.target
# 设定开机默认GUI模式
> systemctl set-default graphical.target
注意CLI模式开始完成后是黑屏,没有任何提示,需要按
ctrl
+alt
+F1/F2/F3...
来启动tty(命令窗口)。最开始没有启动tty,我怎按键盘都没反应还傻乎乎的以为电脑坏掉了。
xxxxxxxxxx
# 查看hostname
> hostnamectl
# 修改hostname
> hostnamectl set-hostname <name>
之前找了好多办法,没想到最后在学习systemd的时候遇到了这个,很简单很好用。
参考用户系统。
我是按照廖一峰的教程学习的systemd,推荐一下:
Systemd 入门教程:命令篇 - 阮一峰的网络日志 (ruanyifeng.com)
想要使用systemd工具来管理服务非常简单,只需要写好服务的配置文件即可。
配置文件有三个部分,Unit
/Service
/Install
,常用的参数在廖一峰的教程中都提到了,参照这就能够修改。可以实现如下功能:
下面介绍几个实例。
更新中...
更新中...
ufw
是ubuntu自带的防火墙cli工具,可以控制iptables进行防火墙的管理。
默认状态下ufw是关闭的,直接开启会关掉ssh连接,需要先在规则中放开ssh,然后再开启ufw
xxxxxxxxxx
> ufw allow ssh
> ufw enable
ufw的规则可以通过man ufw
查看其中的SYNTAX
部分,下面介绍几个常见的
xxxxxxxxxx
# 开放所有的9091端口
> ufw enable 9091
# 禁止所有144.144.144.144的连接
> ufw deny from 144.144.144.144
> ufw reject from 144.144.144.144
# 限制短时间内连接的次数,避免暴力破解
> ufw limit ssh
# 禁止某个ip访问特定端口
> ufw deny from 144.144.144.144 to any port 80
# 添加注释
> ufw limit ssh comment "limit access attemps of ssh"
deny
和reject
的区别:
deny
会忽视连接请求,不发回错误信息,保持连接直到对方因为超时而关闭连接。reject
会立刻发送错误信息,并关掉连接。比较起来
deny
更合适,避免短时间对方使用大量测
xxxxxxxxxx
# 检查是否安装了zsh,如果告诉了版本就说明安装了。
> zsh --version
# 如果没有安装,使用apt包管理系统安装zsh
> sudo apt install zsh
# 修改sh为zsh
> sudo chsh -s $(which zsh)
#然后重新登陆就能够发现用zsh了
使用修改后的install.sh可以使用国内源快速安装oh-my-zsh,避免github的网络问题。修改后的install.sh可以在我的gitee库中找到。
xxxxxxxxxx
# 安装
> sudo apt update
> sudo apt install transmission-daemon
# 这个过程中,会默认创建用户debian-transmission作为进程的用户
# 创建文件夹用于储存下载的文件,并处理权限问题。
> sudo mkdir /var/local/btdownload
> sudo chown -R debian-transmission:debian-transmission !$
> sudo chmod -R 755 !$
# 修改配置
# 首先要暂停服务,这样修改才不会被重置
> sudo systemctl stop transmission-daemon.service
# 然后修改配置文件
> sudo vim /etc/transmission-daemon/setting.json
配置文件中,主要是修改rpc相关,是处理网页远程控制的内容。还有下载文件的目录,方便控制。
我本来是按照幸福小站进行的配置,只按照他备注的地方修改就行,但后来打不开链接了。
配置完后,运行服务
xxxxxxxxxx
> sudo systemctl start transmission-daemon.service
注意:云服务器需要在安全组中修改入方向规则,放开transmission的web控制端口,端口写在配置文件中了,默认为9091。
然后就可以按照http://<server-ip>:9091
进行登录了,操作跟桌面版的transmission是一样的。
有一篇更详细的教程,可以参考【转载】Transmission的安装与配置
Caddy是个非常简单好用的web服务器,可以自动使用let`s encrypted获取证书,方便建立HTTPS网站。
配置起来也要简单的多,不管是建立文件服务器还是进行反向代理。
xxxxxxxxxx
> ffmpeg -i input.mkv -c copy output.mp4
> ffmpeg -i input.mkv -c copy \
-f hls \
-hls_time 10 \
-hls_playlist_type vod\
output.m3u8
为了方便自己折腾系统,先搞个系统盘镜像,省的自己失败了连原来的功能都实现不了了。全程参照通过云服务器创建Linux系统盘镜像进行配置。
安装特殊驱动(没有需求)
安装一键式重置密码插件(公共镜像默认安装)
安装Cloud-Init工具(公共镜像默认安装)
清理网络规则文件(注意)
优化linux
找到/etc/netplan/*.yaml
文件(*为通配符),打开后发现DHCP4默认为true。
发现自己系统里面没有同时含persistant和net的规则文件。
ubuntu系统是initramfs系统镜像,按照说明操作发现无需清理网络规则。
KVM驱动应该是内置到内核里面了,下次先试试这个
xxxxxxxxxx
> sudo lsinitramfs /boot/initrd.img-`uname -r` |grep virtio
毕竟我按照说明往/etc/initramfs-tools/modules
里写了一堆东西,最后却是不支持的平台,所以感觉失败了。
然后直接在网站上制作私有镜像就可以了。只制作系统盘就行,数据盘是需要花钱额外加的,如果之前没弄过就是没有数据盘,更不需要用整机镜像了。而系统盘镜像是免费的,真是好极了呀!