当前位置:首页 > 有云笔记 > OPERATION > 正文内容

软件包管理 、 systemd服务管理 、 VPN服务器

小白2年前 (2022-01-17)OPERATION246750

软件包管理 、 systemd服务管理 、 VPN服务器

 一、将源码包转换为rpm


[root@proxy ~]# yum -y install  rpm-build    //安装制作rpm包的工具
[root@proxy ~]# rpmbuild  -ba  nginx.spec  //制作rpm包,但是没有配

置文件会报错,报错也需要敲,会产生所需的目录


[root@proxy ~]# ls    //可以看到一个rpmbuild目录
[root@proxy ~]# cp  ~/lnmp_soft/nginx-1.17.6.tar.gz  rpmbuild/SOURCES/  //拷贝源码包到rpmbuild的工作目录


[root@proxy ~]# yum -y install  gcc  make  pcre-devel  openssl-devel
vim  rpmbuild/SPECS/nginx.spec  //编写将nginx转换为rpm包的配置文件

Name:nginx     //软件名

Version:1.17.6    //版本

Release:1       //发布的rpm包的版本

Summary:test~    //简单描述

#Group:

License:GPL    //授权协议 ,GPL表示自由软件

URL:www.abc.com    //网址

Source0:nginx-1.17.6.tar.gz     //源码包

#BuildRequires:   

#Requires:

%description    //详细描述

test~ test~

%post      //可以添加安装rpm包之后执行的命令,不是必须

useradd  nginx

%prep

%setup -q

%build

./configure  //配置,如果要添加选项或者模块可以继续写

make %{?_smp_mflags}     //编译

%install

make install DESTDIR=%{buildroot}    //安装

%files

%doc

/usr/local/nginx/*     //将改路径下文件打包成rpm

%changelog


rpmbuild  -ba  rpmbuild/SPECS/nginx.spec  //根据上述文件制作rpm包
ls  rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm  //查看最终结果,已经产生nginx的rpm包则成功

-----------------------------------------------------------------------------------

二、VPN  虚拟专用网

1,使用gre技术搭建vpn,适用于linux环境


[root@web1 ~]# modprobe  ip_gre    //在内核中开启gre功能
[root@web1 ~]# lsmod | grep  gre  //检查,可以看到gre字样信息即可
ip tunnel add tun0 mode gre remote 192.168.2.200 local 192.168.2.100    //创建vpn隧道,名字叫tun0,mode是使用gre技术,与2.200连接,自己ip是2.100
ip  tunnel  del  tun0   //如果错误,可以删除重配
ip addr add 10.10.10.100/8 peer 10.10.10.200/8 dev tun0  //在tun0隧道(dev)中使用私有ip地址,本机是10.100 ,对面(peer)是10.200
ip addr del 10.10.10.100/8 peer 10.10.10.200/8 dev tun0  //如果错误可以删除
ip link set tun0 up    //激活tun0
ip addr show tun0   //查看

软件包管理 、 systemd服务管理 、 VPN服务器

2,使用pptpd搭建vpn,支持windows环境


[root@web1 ~]# cd  ~/lnmp_soft/vpn/
yum  -y  install  ppp   //安装vpn依赖软件包
rpm  -ivh  pptpd-1.4.0-2.el7.x86_64.rpm   //安装vpn工具
vim  /etc/pptpd.conf   //修改102、103行

localip  192.168.2.100   //本机ip

remoteip  10.10.10.10-18  //windows客户机分配的ip(vpn隧道内

使用的地址,可以自定义),范围是10.10.10.10~10.10.10.18


vim  /etc/ppp/options.pptpd   //修改配置,定义dns,66行将#去掉
vim  /etc/ppp/chap-secrets   //定义windows客户机的用户名和密码

tom  *  123456  *     //另起一行创建用户tom,配置密码123456


systemctl  restart  pptpd   //开服务
netstat  -ntulp  |  grep  pptpd    //检查

然后使用windows系统设置vpn

软件包管理 、 systemd服务管理 、 VPN服务器

最下面 用户名写tom  密码123456

 

3,使用xl2tp搭建vpn,支持windows环境,更安全

systemctl  stop  pptpd

首先第一个环节,配置加密:


[root@web1 vpn]# yum  -y  install  libreswan   //安装加密工具
[root@web1 vpn]# cp  myipsec.conf  /etc/ipsec.d/   //复制配置文件到ipsec.d目录
[root@web1 vpn]# vim  /etc/ipsec.d/myipsec.conf    //修改配置第16行

left=192.168.2.100    //设置为本机ip

vim  /etc/ipsec.secrets   //修改配置,添加加密信息

192.168.2.100  %any:  PSK  "randpass"   //另起一行,添加2.100是本机

ip%any:是允许任何客户机连接本服务器,PSK是预共享密钥,randpass

是密码,等windows客户连接vpn服务器时需要该密码


rpm  -ivh  xl2tpd-1.3.8-2.el7.x86_64.rpm
vim  /etc/xl2tpd/xl2tpd.conf    //打开配置文件,32、33行

ip range = 10.10.10.10-10.10.10.18  //给客户分配的ip

local ip = 192.168.2.100    //本机ip


vim  /etc/ppp/options.xl2tpd   //修改配置文件,将第10、16行注释掉,删除掉21行的#以及空格,就可以启用加密
systemctl  start  ipsec   //开启加密服务
netstat  -ntulp |grep  :500    //之后检查加密服务
systemctl  start  xl2tpd  //开启xl2tpd服务
netstat  -ntulp |grep  xl2tpd

软件包管理 、 systemd服务管理 、 VPN服务器

-----------------------------------------------------------------------------------------------------

三、编写Unit文件,使systemctl命令控制nginx

首先编写个脚本做个小测试


cd  /usr/lib/systemd/system     //到存储了Unit文件的目录
[root@proxy system]# vim  /root/test.sh     //编写测试脚本

#!/bin/bash

while :

do

echo abc

echo dc

sleep 0.1

done

 

chmod +x /root/test.sh     //添加x权限
[root@proxy system]# vim test.service//创建控制test.sh脚本的Unit文件

[Unit]

Description=test script     //描述

After=time-sync.target    //在什么业务之后启动,这个地方如果不讲究启动顺序可以不写

[Service]

ExecStart=/root/test.sh  //如果执行了systemctl start test 命令,就让系统执行/root/test.sh

ExecReload=/bin/kill -HUP $MAINPID    //如果执行了systemctl reload test,可以

重新加载test.sh

KillMode=process   //如果执行了systemctl stop test,系统就会杀死test.sh的主进程

systemctl daemon-reload   //激活刚才的test.service文件,但有时可能不好使,可以重启系统

------------------------------------------------

然后实现控制nginx服务:


cd  /usr/lib/systemd/system
cp httpd.service nginx.service    //拷贝模板
vim  nginx.service   //修改

[Unit]

Description=The nginx HTTP Server  //描述

After=network.target remote-fs.target nss-lookup.target  //在网络服务、网络文件服务、域名服务的程序启动之后再启动nginx

[Service]

Type=forking  //nginx是多进程类型程序,要设置为forking

ExecStart=/usr/local/nginx/sbin/nginx  //当执行了systemctl start nginx之后执行的命令

ExecReload=/usr/local/nginx/sbin/nginx -s reload   //当执行了systemctl reload nginx之后执行的命令

ExecStop=/bin/kill -s QUIT ${MAINPID}    //当执行了systemctl stop nginx之后执行的命令,这里是用kill命令发送退出信号给nginx的进程号,相当于停止nginx服务,-s QUIT是发送退出信号,${MAINPID}是变量,里面存了nginx的进程号

 

[Install]

WantedBy=multi-user.target   //支持开机自启

然后重启服务之后可以用systemctl等命令控制nginx

提示:必须要提前先安装好nginx服务,并且没有其他服务占用80端口!


over

软件包管理 、 systemd服务管理 、 VPN服务器  您阅读本篇文章共花了: 

分享到:

    扫描二维码推送至手机访问。

    版权声明:本文由有云转晴发布,如需转载请注明出处。

    本文链接:https://www.yyzq.cf/?id=83

    分享给朋友:

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。