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数据库服务器