Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /webData/hua/www.ascwh.com/var/Typecho/Feed.php on line 221
ASCWH - Linux
https://www.ascwh.com/tag/Linux/
-
Linux WireGuard 一键安装脚本
https://www.ascwh.com/398.html
2022-05-19T22:35:00+08:00
安装安装wget https://raw.githubusercontent.com/yobabyshark/wireguard/master/wireguard_install.sh && chmod +x wireguard_install.sh && ./wireguard_install.sh
# 验证是否安装成功
[root@localhost ~]# modprobe wireguard && lsmod | grep wireguard
wireguard 204791 0
ip6_udp_tunnel 12755 1 wireguard
udp_tunnel 14423 1 wireguard安装后配置文件目录(/etc/wireguard/)里的文件:wireguard/
├── client.conf #客户端配置文件
├── cprivatekey #客户端私钥
├── cpublickey #客户端公钥
├── sprivatekey #服务端私钥
├── spublickey #服务端公钥
└── wg0.conf #服务端配置信息配置说明WireGuard的多用户配置特别简单,只需要生成一对客户端密匙(公匙+私匙),在服务端配置文件中新增一段 [Peer] 写上新的客户端公匙和客户端的内网IP地址即可。(当然我们可以用命令快捷添加,或者手动修改服务端配置文件也行。)而各客户端账号配置文件的区别也只是 [Interface] 中的客户端私匙和客户端内网IP地址不同罢了。另外我们需要明白一个对等原则:服务端配置文件中的 [Interface] 是保存自己的服务端私匙,而客户端配置文件中的 [Interface] 同样保存自己的客户端私匙。服务端配置文件中的 [Peer] 是保存客户端的公匙,而客户端配置文件中的 [Peer] 是保存服务端的公匙。服务端与客户端都是互相保存自己的私匙在 [Interface] 中,互相保存对方公匙在 [Peer] 中。如果在Centos7操作,注意跑下yum update(对内核版本有要求)系统转发注意开启net.ipv4.ip_forward = 1
#服务器常用命令:
wg show wg0 #查看wg0虚拟网卡当前状态
systemctl status wg-quick@wg0
systemctl restart wg-quick@wg0
#开启关闭wg指令:
wg-quick up wg0
wg-quick down wg0
# 默认wg0.conf文件:
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = firewall-cmd --zone=public --add-port 3306/udp && firewall-cmd --zone=public --add-masquerade
PostDown = firewall-cmd --zone=public --remove-port 3306/udp && firewall-cmd --zone=public --remove-masquerade
ListenPort = 3306
PrivateKey = 4KQWlx+Md0I5uHj+D9DjJZAwpTFFjG7E03/9FFjjJ3o=
[Peer]
PublicKey = 6enJBddxwwaIrD4lV6g9Uiz+RDmh7NGmyYrFbGpJuF0=
AllowedIPs = 10.0.0.2/32WireGuard 配置说明[Interface]
ListenPort = 8002 #本机监听 WireGuard 端口
PrivateKey = 填写本机的 privatekey 内容 #本机加密私钥
DNS = 1.1.1.1 #强制本机使用 DNS 服务器
MTU = 1300 #强制本机使用指定 MTU 值
#Table = 100 #强制本机将注入系统的路由的 table 指定为 100 ( 系统默认为 255 和 254 )
#PostUp = ip rule add from 10.10.1.0/24 table 100 ; ip rule add from 10.10.2.0/24 table 100
#PreDown = ip rule delete from 10.10.1.0/24 table 100 ; ip rule delete from 10.10.2.0/24 table 100
[Peer]
PublicKey = 填写对端的 publickey 内容 #本机加密的对端公钥(加密后数据仅对端可以解密)
AllowedIPs = 172.16.1.11/32 #本机允许的对端设备的 IP 地址段,其实就是在本机中这个虚拟网卡对端都有哪些设备 IP 地址(多 peer 不可重复)
Endpoint = another.domain.name:8001 #对端 WireGuard 的外部 IP(可以有一侧的 IP 地址是虚假的公网 IP)
PersistentKeepalive = 25 #当会话存在一端 IP 地址为 NAT 地址或虚假公网 IP 地址时,由该方阶段性每 25 秒发送 keepalive 报文保持会话的可用性,防止被设备终止。
在上方基础上,额外要注意的是1、如果你存在多个 [Peer] ,则在下面直接增加一个新的 [Peer] 栏目2、如果多个 Peer 存在不同的 IP,请不要让 AllowedIPs 存在重叠的 IP 地址段(比如配置多个相同/24 只有一个生效)3、Endpoint 既支持以域名的方式访问,也支持以 IP 的方式访问。4、会话链接的建立只要保证两端数据在一台设备上成功协商,即使有一端 IP 地址后期变更过也不会影响 VPN 的稳定性。5、使用命令 wg 可以看到当前服务的运行情况。6、如果你是本来打算连服务器的移动端,则在配置中你需要将移动端的 "AllowedIPs =" 补写一条内容 0.0.0.0/0,::0 以允许所有流量7、前面标注 # 的三条内容,作为 iproute2 的使用方式,通过指定路由条目的 table 与 ip rule 联动控制策略流量转发。8、PreUp,PostUp,PreDown,PostDown 这四个命令参数,是作为 wg-quick 快速设置/删除接口之前/之后由 bash(1)执行的四条命令,常用于配置自定义 DNS 或防火墙规则。 特殊字符串 %i 作为变量替代所控制的 INTERFACE 配置名。 每个命令参数都支持多条命令,参数内的多条命令将按前后顺序依次执行。
-
Linux firewall
https://www.ascwh.com/364.html
2020-09-02T23:38:05+08:00
1)查看对外开放的端口状态 查询已开放的端口 netstat -anp
查询指定端口是否已开 firewall-cmd --query-port=888/tcp 提示 yes,表示开启;no表示未开启。
(2)查看防火墙状态
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
开启防火墙 service firewalld start
若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
(3)对外开发端口 查看想开的端口是否已开:
firewall- cmd --query-port=80/tcp
添加指定需要开放的端口:
firewall-cmd --add-port=81/tcp --permanent
重载入添加的端口:
firewall-cmd --reload
查询指定端口是否开启成功:
firewall-cmd --query-port=81/tcp
移除指定端口:
firewall-cmd --permanent --remove-port=8!
-
QQ-Linux 版本发布了~~~
https://www.ascwh.com/333.html
2019-10-26T13:56:00+08:00
十多年后的惊喜~~~官方下载地址
-
微软意图将新版 Edge 浏览器引入 Linux
https://www.ascwh.com/265.html
2019-09-30T14:47:00+08:00
继推出 WSL2、将 exFAT 技术添加至 Linux 内核,和宣布第一届微软 Linux 大会后,微软再次瞄准了 Linux。这次 Linux 用户将很可能迎来新版 Edge 浏览器。微软网络技术程序经理 Sean Larson 在 Twitter 上发布了一条消息,表示 Edge 开发团队正在收集并完善将 Edge 引入 Linux 的需求,因此制作了一份调查问卷,希望使用 Linux 的开发人员帮忙填写。该问卷内容主要关于被调查者对 Linux 发行版的偏好、在 Linux 上使用 web 浏览器的场景和需求等等。对于此事,一些网友认为 MS Edge 只是披着一层外衣的 Chromium 罢了,将其引入 Linux 只会给熙熙攘攘的浏览器市场再添一份拥堵。另一些人则觉得这将对 Chromium Edge 的 MSFT 开源二进制文件发展有帮助。目前在 Linux 发行版上已有各种基于 Chromium 的浏览器可供使用,外媒 fossbytes 的看法是,微软正在从 Chromium 源代码中删除与 Google 相关的大部分内容,所以对于那些希望拥有无 Google 浏览器体验的用户来说,它也不失为一种选择。当然,这只是一项调查,可以说它透露出微软想将 Edge 浏览器引入 Linux 的意图,但无法保证 Edge for Linux 一定会发生。毕竟 Windows 上的新版 Edge 都还在 beta 阶段,尚未正式就绪。文章转载自 OSCHINA 社区 [http://www.oschina.net]
-
SVN 树冲突的解决方法
https://www.ascwh.com/201.html
2019-04-23T03:18:00+08:00
svn 出现冲突是经常发生的事,最近改用命令操作svn,用界面电脑有些反应慢出现冲突使用svn 命令肯定也是可以解决的:root@root:~# cd /home/wwwroot/www/root@root:/home/wwwroot/www# svn up正在升级 '.':已跳过 '*.php' -- 节点处于冲突状态版本 1312。冲突概要:跳过的路径:1决方法:step ①root@root:~# cd /home/wwwroot/www/# svn resolve --accept working *.php“ *.php”的冲突状态已解决step ②root@root:~# cd /home/wwwroot/www/# svn revert *.php 已恢复“*.php”
-
OneinStack PHP多版本共存~~
https://www.ascwh.com/171.html
2018-12-10T09:56:00+08:00
《OneinStack》一键PHP/JAVA安装工具中lnmp模式,很用户希望一个网站运行在php5.4,另一个网站运行在php7下,一台服务器上同时支持多个PHP版本,步骤如下:1、 安装 OneinStack选择 LNMP 模式,默认安装 php5.6,安装步骤参考:交互式安装 或者 自动安装选项如下:Install Nginx
Do not install Apache
Do not install Tomcat
Install MySQL-5.7
Install php-5.6
….
….
2、 安装php7service php-fpm stop #后面需要再安装php,需要停止phpmv /etc/init.d/php-fpm{,_bk} #后面需要再安装php会覆盖,备份启动脚本默认php5.6安装路径是/usr/local/php,如果再次安装会提示php已经安装,因此必须修改options.conf的php安装目录,将php7安装路径设置为/usr/local/php7,修改文件/root/oneinstack/options.conf:php_install_dir=/usr/local/php7再次执行./install.sh,选择Install php-7,其余均选择 n,安装有些耗时……等待中…………3、 修改php配置文件service php-fpm stop #停止php7启动脚本
mv /etc/init.d/php-fpm /etc/init.d/php7-fpm #重命名php7启动脚本
mv /etc/init.d/php-fpm_bk /etc/init.d/php-fpm #恢复php5.4启动脚本
设置php5.4、php7开机自启动: CentOS: chkconfig –add php7-fpm
chkconfig –add php-fpm
chkconfig php7-fpm on
chkconfig php-fpm on
防止php5.6、php7监听sock冲突,修改php7的listen,更改配置文件/usr/local/php7/etc/php-fpm.conflisten = /dev/shm/php-cgi.sock改成listen = /dev/shm/php7-cgi.sock手工启动php5.6、php7:service php-fpm start #启动php5.6service php7-fpm start #启动php74、 修改nginx虚拟主机配置文件./vhost.sh绑定域名,默认是运行在php5.6,如需要将网站运行在php7下,需要修改/usr/local/nginx/conf/vhost/ccccc.com.conffastcgi_pass unix:/dev/shm/php-cgi.sock;改成fastcgi_pass unix:/dev/shm/php7-cgi.sock;重新加载nginx,使配置生效:service nginx reload
-
Mac 安装 jmeter 压力测试工具
https://www.ascwh.com/170.html
2018-11-16T00:17:00+08:00
JMeter 介绍Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。 同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.Step1:官网下载Jmeter地址:http://jmeter.apache.org/download_jmeter.cgi官网下载JmeterStep2:解压刚才下载的Jmeter文件解压Step3:进入解压目录/bin/,敲入命令“sh jmeter”启动启动好了!!!就是这么简单注意 !注意!注意! 这玩意需要JAVA JDK 的支持
-
Nginx 通过认证访问web页面
https://www.ascwh.com/161.html
2018-11-06T14:58:00+08:00
有的时候暴漏nginx的web页面很不安全,需要添加一个认证,本文介绍使用htpasswd工具为nginx添加认证的用户名和密码。在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。1、检查工具是否安装,如果未安装则使用yum安装htpasswd有以上输出表示已经安装,如果没有按装,使用如下命令安装:yum -y install httpd-tools2、htpasswd选项参数htpasswd [-cmdpsD] passwordfile usernamehtpasswd -b[cmdpsD] passwordfile username passwordhtpasswd -n[mdps] usernamehtpasswd -nb[mdps] username passwordhtpasswd命令选项参数说明-c 创建一个加密文件-n 不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上-m 默认htpassswd命令采用MD5算法对密码进行加密-d htpassswd命令采用CRYPT算法对密码进行加密-p htpassswd命令不对密码进行进行加密,即明文密码-s htpassswd命令采用SHA算法对密码进行加密-b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码-D 删除指定的用户3、创建用户和密码文件#htpasswd -bc /etc/nginx/.passwd test test@123test:用户名, test@123:密码文件内容如下:test:$apr1$V3P/kJ/E$tgtEmhu7boXUWxSnxslf0.4、nginx配置文件修改1)如果想要对整个站点进行加密,将以下语句添加到server段:auth_basic "Protected Elasticsearch";
auth_basic_user_file /etc/nginx/.htpasswd;
例如:server { listen *:80;
client_max_body_size 2048m;
auth_basic "Protected Elasticsearch";
auth_basic_user_file /etc/nginx/.htpasswd;
access_log /var/log/nginx/elk_access.log;
error_log /var/log/nginx/elk_error.log;
location / {
http_pass http://10.1.1.1;
}}2)如果只是对某一个请求,进行加密,则需要将上述语句添加到对应的location里面:auth_basic "Protected Elasticsearch";auth_basic_user_file /etc/nginx/.htpasswd;
例如:server { listen *:80;
client_max_body_size 2048m;
access_log /var/log/nginx/elk_access.log;
error_log /var/log/nginx/elk_error.log;
location / {
auth_basic "Protected Elasticsearch";
auth_basic_user_file /etc/nginx/.htpasswd;
http_pass http://10.1.1.1;
}}修改好配置首先进行检查配置文件的正确性:nginx -t使配置生效:nginx -s reload5、增加用户htpasswd -b /etc/nginx/.passwd test1 test123使修改生效nginx -s reload删除用户名和密码htpasswd -D /etc/nginx/.passwd test1使修改生效nginx -s reload只显示用户名、密码,不修改密码文件htpasswd -nb test test@123修改密码1)第一种方法htpasswd -D /etc/nginx/.passwd test1htpasswd -b /etc/nginx/.passwd test1 test1232)第二种方法htpasswd -nb test test@123test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.将之前的删除或注释掉,并将上述产生的新密码添加到密码文件里面vim /etc/nginx/.passwdtest:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.使修改生效nginx -s reload
-
LINUX SVN:E210007无法协商认证机制
https://www.ascwh.com/134.html
2018-07-08T20:12:00+08:00
svn:E210007 svn: Cannot negotiate authentication mechanism执行下面代码 安装完成再次检出即可sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap
-
linux 下安装mysql 之后常见问题
https://www.ascwh.com/120.html
2018-06-25T11:33:17+08:00
无法直接进入Mysql使用命令进入mysql时,不起作用,报如下错误[root@bogon ]# mysql -u root –p ERROR 1045 (28000):Access denied for user'root'@'localhost' (using password: YES)解决方法1、 停止mysql服务; service mysql stop 2、 使用mysql-safe命令绕过密码安全登录; mysqld_safe --user=mysql --skip-grant-tables--skip-networking &3、 输入登录用户名和密码 mysql -u root –p 4、 进去之后重置密码 mysql>SET PASSWORD = PASSWORD('passok')注:这也是防止另外一个错误 ERROR 1820(HY000):You must SET PASSWORD before executing this statement如果不支持中文修改 /etc/mysql/my.cnf 在 [client] 下面增加: default-character-set=utf8 或 character_set_server=utf8在 [mysqld] 下面增加: default-character-set=utf8 或 character_set_server=utf8 6)错误提示:unknown variable 'default-character-set=utf8' 修改配置文件 /etc/mysql/my.cnf 中的“default-character-set=utf8” 为 “character_set_server=utf8”开通外网访问权限一、配置文件的修改1.#sudo vim /etc/mysql/my.conf 找到 bind-address = 127.0.0.1 注释掉这句话;二、Mysql数据库的修改1) [root@etc etc]# mysql -u root -p Enter password:
2)grant all privileges on database.* to admin@192.168.1.1 identified by 'password' ####注意: 1)192.168.1.1是欲连接到此Mysql数据库的客户端的IP地址,而不是Mysql数据库所在数据库服务器的IP地址,切记 2)password就是Mysql数据库root用户的password,根据实际情况需要修改 如何访问Linux系统中的MySQL数据库? 前不久在Linux系统中安装了MySQL数据库,但Linux系统是一个虚拟机,而真正的主机是Win7,我就试着在Win7下面用MySQL数据库工具去访问Linux系统下的MySQL数据库。 但在连接的过程中就出现了问题: Host '192.168.0.101' is not allowed to connect to this MySQL server 然后我百度了一下这个问题,找到了以下的几种解决办法。####方法一: (修改表) 进入Linux系统下的mysql数据库中,打开user表,找到“host”字段值为“localhost”的记录,将值“localhost”更新为“%”。命令如下: #mysql -u root -p Enter password:
#mysql>use mysql;
#mysql>update user set host='%' where user='root' and host='localhost';
#mysql>select host,user from user;方法二:(授权) 例1 如果你想myuser使用mypassword从任何主机连接到MySQL数据库服务器的话。使用如下授权权命令: GRANT ALL PRIVILEGES ON *.* TO [email='myuser'@'%']%27myuser%27@%27%%27[/email] IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 例2 如果你想允许用户myuser从IP为192.168.0.101的主机连接到MySQL数据库服务器并使用mypassword作为密码。使用如下授权命令: GRANT ALL PRIVILEGES ON *.* TO [email='myuser'@'192.168.0.101']%27myuser%27@%27192.168.0.101%27[/email] IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 以上两种方法是从网上找的。本人通过第二种方法中的例1解决了我所遇到的问题,并成功连接了Linux系统中的MySQL数据库服务器