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 配置名。 每个命令参数都支持多条命令,参数内的多条命令将按前后顺序依次执行。
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!
]]>继推出 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 命令肯定也是可以解决的:
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”
选择 LNMP 模式,默认安装 php5.6,安装步骤参考:交互式安装 或者 自动安装
Install Nginx
Do not install Apache
Do not install Tomcat
Install MySQL-5.7
Install php-5.6
….
….
service 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,安装有些耗时……等待中…………
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.6service php7-fpm start
#启动php7
./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
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。
JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.
地址:http://jmeter.apache.org/download_jmeter.cgi
官网下载Jmeter
解压
启动
好了!!!就是这么简单
在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。
1、检查工具是否安装,如果未安装则使用yum安装
有以上输出表示已经安装,如果没有按装,使用如下命令安装:
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;
}
}
修改好配置首先进行检查配置文件的正确性:
使配置生效:
5、增加用户
使修改生效
删除用户名和密码
使修改生效
只显示用户名、密码,不修改密码文件
修改密码
1)第一种方法
2)第二种方法
test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.
将之前的删除或注释掉,并将上述产生的新密码添加到密码文件里面
test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.
使修改生效
svn: Cannot negotiate authentication mechanism
执行下面代码 安装完成再次检出即可
sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap
]]>使用命令进入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
注释掉这句话;
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数据库服务器
]]>