systemctl配置脚本
vim /usr/lib/systemd/system/nginx.service
chmod +x /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nginx.service
Ubuntu下WireGuard的常用操作
Wireguard的配置文件位置:
/etc/wireguard/wg0.conf
不中断服务更新配置文件:
wg syncconf wg0<(wg-quick strip wg0)
重启服务:
systemctl restart wg-quick@wg0.service
显示状态:
wg show
生成密钥对:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
启动与停止某端口:
wg-quick up wg0
wg-quick down wg0
初次安装需要开启内核的转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
Ubuntu下配置MariaDB
先确定root已设置密码;
sudo passwd root
安装mariadb-server;
sudo apt install mariadb-server
mariadb初始配置;
sudo mysql_secure_installation
修改配置文件,以允许远程连接;
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
→#bind-address 127.0.0.1
重启mariadb-server;
systemctl restart mariadb.service
登录mariadb;
sudo mariadb -u root -p
配置远程访问用户权限;
select User, host from mysql.user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
尝试远程连接。
FreeBSD下对硬盘健康状态的检测方法
S.M.A.R.T检测使用smartctl
//硬盘详细信息
smartctl -i /dev/da1
//硬盘健康状态
smartctl -H /dev/da1
//运行smart自检(-C 前台)
smartctl -t long /dev/da1
smartctl -t short /dev/da1
//终止自检
smartctl -X /dev/da1
//查看自检结果
smartctl -l selftest /dev/da1
坏块检测使用badblocks
// -s 显示进度; -v 显示执行详情; -w 写入检测(已挂载不可执行)
badblocks -s -v /dev/da1
速度测试使用hdparm
//检测读取速度
hdparm -t /dev/sda
Windows中为WireGuard配置NAT的简单方法
网上在Linux使用IPtable为WireGuard进行NAT的教程很多,但却没有在Windows中的教程。
实际上在Windows中实现更加简单,但也缺乏一些自由性。下面以Windows7为例:
系统中存在两个接口:本地连接2(接入外网的LAN),test(WireGuard的接口)。
在“本地连接2”的属性中,将其共享。
共享后,此Windows7主机相当于充当了WireGuard虚拟局域网的路由器(网关),但虚拟局域网的IP只有一个(类似于真实局域网中公网IP只有一个),如果真实局域网中的终端想要访问虚拟局域网的终端,就像公网中的设备主动访问NAT内的设备一样,需要配置DMZ主机或者端口映射。
确定后,Windows默认会将受共享接口(test)的IP地址(网关地址)改为192.168.137.1,需要手动更改为WireGuard中设定的地址,或者重新连接WireGuard,将自动更改。
Windows7的该功能可能自动开启了DHCP,关闭方法未知,忽略警告暂未发现影响。
在受共享的WireGuard终端配置文件中,应将被共享真实局域网的IP段加入到AllowedIPs中。若希望全局使用WireGuard隧道连接公网,则设置0.0.0.0,同时要配置::/0防止IPv6漏出。
重新连接WireGuard后,即可在客户端连接到真实局域网内的终端了。
注意:每次重启服务端时,都需要重新设置一次Internet连接共享!!
WireGuard架设公网点对点隧道(虚拟局域网)
WireGuard不分服务端、客户端,各端点相互平行,共同组成一个加密的虚拟局域网。(转发功能暂未学会,不能翻墙,据说基于UDP的WireGuard翻墙已被禁)。
首先,前往wireguard.com(已被墙)下载Windows客户端,TrueNAS Core集成于系统中,可直接使用。
以下是FreeBSD下的配置。
//编辑配置文件
vim /usr/local/etc/wireguard/wg0.conf
//修改sysrc参数,也可在图形界面“微调”中修改
sysrc wireguard_interfaces="wg0"
sysrc wireguard_enable="YES"
//启动、停止、重启
service wireguard start
service wireguard stop
service wireguard restart
//查看运行状态
wg
ps aux | grep wireguard
部分网络相关的常用FreeBSD指令:
//查看路由表
netstat -f inet -r -n
netstat -f inet6 -r -n
//查看进程
ifconfig wg0
配置文件的内容(可多Peer):
[Interface]
PrivateKey = {私钥}
ListenPort = {端口号}
//虚拟IP地址,不可与本地局域网地址冲突
Address = 10.100.101.1/24
[Peer]
PublicKey = {对端的公钥}
AllowedIPs = 10.100.101.2/32
[Peer]
PublicKey = {对端公钥}
AllowedIPs = 10.100.101.3/32
Endpoint = {对端地址:端口}
//心跳包间隔时间
PersistentKeepalive = 25
可使用UDP&TCP测试工具测试端口是否畅通(UDP不好用),也可使用netcat在命令行下操作(netcat集成于linux)。
WireGuard连接后,ping指令无效,因为ping基于IGMP。
TCP协议更加可靠,因为对方收到后会回复信息确认,而UDP则不会回复,延迟会低一点,但丢包更加不可控,适合视频串流等对丢包要求低,但对延迟要求高的场景。
路由器设置端口转发时,应将TCP/UDP两个都选择上。
转发的配置相关资料较少,没有在FreeBSD和Windows上的教程,在Linux上应该是基于IPtable的IP地址转发,不太难。因为WireGuard的客户端对网络的影响是全局的,缺少转发可能导致断网。
可以使用UDPSpeeder和UDP2raw来优化UDP数据的传输,一个可以通过添加冗余信息避免丢包影响,另一个可以伪装UDP数据,防止拦截。
Raspbian使用的一些技巧总结
#查看CPU温度
/opt/vc/bin/vcgencmd measure_temp
#显示有黑边,无法全屏时,尝试关闭“首选项”中的”Oversacn”。
#安装输入法(可到iBus首选项中详细设置)。
sudo apt install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
im-config -s ibus
sudo apt install ibus-pinyin ibus-sunpinyin
#下载可使用aria2(需要安装,可下载种子、磁力链)。
aria2c https://github.com/opencv/opencv/archive/4.5.2.zip
/
-o 重命名
–max-download-limit 限速
-Z 多文件下载(多个下载地址以空格间隔)
-c 断点续传
-x2 两个连接
/
Ubuntu配置ROS环境
添加 sources.list(设置你的电脑可以从 packages.ros.org 接收软件.)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加 keys
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
更新软件包索引
sudo apt update
安装桌面完整版 : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知
sudo apt install ros-noetic-desktop-full python-rosinstall
//可能需要换源,ubuntu官方源较为老旧,可能存在兼容问题,无法安装。
必须在使用ROS的每个bash终端中获取此脚本的源代码。
source /opt/ros/noetic/setup.bash
环境配置
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
WinServer配置FTP/HTTP服务器
在服务器管理器中添加Web角色及安装相应的功能,然后到IIS管理器中设置即可。
FTP服务无法通过端口映射到公网!!因为FTP会随机调用端口。
HTTP服务需要“连接到”添加文件夹权限。同时,要注意MIME类型设置,如果当作文件下载服务器,要将目录中所有文件的类型(可以理解为扩展名)添加。
防火墙可以直接将SVhost.exe添加到白名单,安全性未知。
OpenWRT配置笔记
openwrt并不是一个完美的路由系统,系统的本体有点业余、简陋,而各类扩展则规范性较差,没有良好的技术文档支持。
安装完成后可在CGI界面更新可用安装包,然后安装中文语言包(base),同时安装的软件也可以加“zh-cn”后缀下载中文包。
网络的配置更像是家用路由,而不是企业路由,但拥有更多的可选项。无需配置NAT和DHCP,默认开启。IPv6支持较好。
软路由对VLAN支持不太好,当存在硬件交换能力时才有完整功能。可以在接口后加上后缀启用软VLAN,如“Eth0.88”,但启用后无法直通。
硬件消耗极低,2C+1G+2G即可完全满足千兆NAT的需求。
端口转发需要将WAN进入的区域全部改成允许。
公网的80端口被封,切记。
ESXi配置笔记
- esxi的系统盘不可以随意移动,否则进入系统会报错,且无法使用系统盘内的vmfs分区。
- 网卡直通即使显示支持IR-SOV,开启后也可能无法使用,表现为按要求重启后,网卡依旧显示需要重启才能使用。
- 能否通过直通板载RAID控制器不得而知,可能因为直接由SATA转USB后,系统配置中硬盘ID未更改,导致esxi误认为系统盘占用板载控制器;也可能是板载控制器不支持直通或需要开启AHCI模式。
- 安装在128G容量以下的硬盘时,esxi会占用剩余所有空间,生成VMFSL分区(可能是虚拟机的缓存及日志)。可以在安装时,按Shift+O,在原有字符后添加安装参数:autoPartitionOSDataSize=8192。8192为设置的VMFSL分区容量,16G~32G足以。(安装时需要将原系统盘格式化,否则可能出问题)。
- 如果没有直通的HBA卡,可以通过RDM的方式半直通硬盘。RDM不需要格式化原硬盘,而是像使用ISCSI在系统盘创建出一个虚拟的VMDK文件,链接到原硬盘。缺点是无法在虚拟机中查看到SMART信息,且需要CPU进行软转换。步骤为:
//登陆esxi服务端->存储->设备->找到自己磁盘的id(在括号中的)
t10.ATA_____ST8000NM000A2D2KE101_________________________________WKD1J1AF
//登陆esxi服务端->存储->选择系统盘->复制位置后面地址
/vmfs/volumes/5eefaf52-4d40184a-07a6-4cd98f75a46c
//启动ssh连入esxi服务器并输入下面命令
vmkfstools -z /vmfs/devices/disks/未格式化硬盘标识符 /vmfs/volumes/ESXI系统盘路径/自定义名称.vmdk
6. 虚拟机默认不开启开机自启动,需要自己配置,且存在启动延迟。
7.WinServer2012R2 安装后纯系统占用30G左右。
Seafile迁移存储位置
将seafile/seafile-data移动到新的位置,
再使用ln -s /*/seafile-data seafile/seafile-data链接新的位置,
启动seafile即可。
CentOS更新PHP
(现在CentOS8推荐使用dnf的module方式进行升级,具体见链接。)
1、卸载旧PHP
yum remove php*
2、安装EPEL
yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
3、查看PHP
yum search php74
4、安装php
yum install php74-php-gd php74-php-pdo php74-php-mbstring php74-php-cli php74-php-fpm php74-php-mysqlnd
5、启动fpm
service php74-php-fpm start
Seafile服务器启动操作
1、到NGINX的sbin文件夹下启动NGINX
2、到最新的seafile文件夹下
./seafile.sh start
./seahub.sh start
可能需要启动MariaDB