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 297
ASCWH - Linux https://www.ascwh.com/tag/Linux/ zh-CN Thu, 19 May 2022 22:35:00 +0800 Thu, 19 May 2022 22:35:00 +0800 Linux WireGuard 一键安装脚本 https://www.ascwh.com/398.html https://www.ascwh.com/398.html Thu, 19 May 2022 22:35:00 +0800 ASCWH 安装安装
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/32

WireGuard 配置说明

[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 配置名。 每个命令参数都支持多条命令,参数内的多条命令将按前后顺序依次执行。

]]>
0 https://www.ascwh.com/398.html#comments https://www.ascwh.com/feed/tag/Linux/
Linux firewall https://www.ascwh.com/364.html https://www.ascwh.com/364.html Wed, 02 Sep 2020 23:38:05 +0800 ASCWH

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!
]]>
0 https://www.ascwh.com/364.html#comments https://www.ascwh.com/feed/tag/Linux/
QQ-Linux 版本发布了~~~ https://www.ascwh.com/333.html https://www.ascwh.com/333.html Sat, 26 Oct 2019 13:56:00 +0800 ASCWH
十多年后的惊喜~~~
官方下载地址

]]>
0 https://www.ascwh.com/333.html#comments https://www.ascwh.com/feed/tag/Linux/
微软意图将新版 Edge 浏览器引入 Linux https://www.ascwh.com/265.html https://www.ascwh.com/265.html Mon, 30 Sep 2019 14:47:00 +0800 ASCWH

继推出 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]

]]>
0 https://www.ascwh.com/265.html#comments https://www.ascwh.com/feed/tag/Linux/
SVN 树冲突的解决方法 https://www.ascwh.com/201.html https://www.ascwh.com/201.html Tue, 23 Apr 2019 03:18:00 +0800 ASCWH 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”

]]>
0 https://www.ascwh.com/201.html#comments https://www.ascwh.com/feed/tag/Linux/
OneinStack PHP多版本共存~~ https://www.ascwh.com/171.html https://www.ascwh.com/171.html Mon, 10 Dec 2018 09:56:00 +0800 ASCWH 《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、 安装php7

service php-fpm stop #后面需要再安装php,需要停止php
mv /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.conf

listen = /dev/shm/php-cgi.sock
改成
listen = /dev/shm/php7-cgi.sock

手工启动php5.6、php7:

service php-fpm start #启动php5.6
service php7-fpm start #启动php7

4、 修改nginx虚拟主机配置文件

./vhost.sh绑定域名,默认是运行在php5.6,如需要将网站运行在php7下,需要修改/usr/local/nginx/conf/vhost/ccccc.com.conf

fastcgi_pass unix:/dev/shm/php-cgi.sock;
改成
fastcgi_pass unix:/dev/shm/php7-cgi.sock;

重新加载nginx,使配置生效:

service nginx reload

]]>
0 https://www.ascwh.com/171.html#comments https://www.ascwh.com/feed/tag/Linux/
Mac 安装 jmeter 压力测试工具 https://www.ascwh.com/170.html https://www.ascwh.com/170.html Fri, 16 Nov 2018 00:17:00 +0800 ASCWH 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
官网下载Jmeter

Step2:解压刚才下载的Jmeter文件

解压

Step3:进入解压目录/bin/,敲入命令“sh jmeter”启动

启动

好了!!!就是这么简单

注意 !注意!注意! 这玩意需要JAVA JDK 的支持
]]>
0 https://www.ascwh.com/170.html#comments https://www.ascwh.com/feed/tag/Linux/
Nginx 通过认证访问web页面 https://www.ascwh.com/161.html https://www.ascwh.com/161.html Tue, 06 Nov 2018 14:58:00 +0800 ASCWH 有的时候暴漏nginx的web页面很不安全,需要添加一个认证,本文介绍使用htpasswd工具为nginx添加认证的用户名和密码。

在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。

1、检查工具是否安装,如果未安装则使用yum安装

htpasswd

有以上输出表示已经安装,如果没有按装,使用如下命令安装:

yum -y install httpd-tools

2、htpasswd选项参数

htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
htpasswd命令选项参数说明
-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@123

test:用户名, 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 reload

5、增加用户

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 test1

htpasswd -b /etc/nginx/.passwd test1 test123

2)第二种方法

htpasswd -nb test test@123

test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.

将之前的删除或注释掉,并将上述产生的新密码添加到密码文件里面

vim /etc/nginx/.passwd

test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.

使修改生效

nginx -s reload

]]>
0 https://www.ascwh.com/161.html#comments https://www.ascwh.com/feed/tag/Linux/
LINUX SVN:E210007无法协商认证机制 https://www.ascwh.com/134.html https://www.ascwh.com/134.html Sun, 08 Jul 2018 20:12:00 +0800 ASCWH svn:E210007

svn: Cannot negotiate authentication mechanism

执行下面代码 安装完成再次检出即可

sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap

]]>
0 https://www.ascwh.com/134.html#comments https://www.ascwh.com/feed/tag/Linux/
linux 下安装mysql 之后常见问题 https://www.ascwh.com/120.html https://www.ascwh.com/120.html Mon, 25 Jun 2018 11:33:17 +0800 ASCWH 无法直接进入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数据库服务器

]]>
0 https://www.ascwh.com/120.html#comments https://www.ascwh.com/feed/tag/Linux/