Linux

专业的事情,交给专业的人去做

大约一年前,我想尝试自己搭建一个XXX服务器,一方面自己可能偶尔有使用的需求,另外一方面是亲自做一遍熟悉一下并且记录搭建步骤,之后再有需要到话拿出之前到笔记迅速就能完成。 记得当时搭建时候费了很大到劲,命令不熟,各种包找不到,以及亚马逊防火墙的各种坑。看了很多帖子,踩了不少坑,用了很久时间终于把L2TP搞定了,苹果Android都可以连接,当时还是超级开心的,并且特别详细到把每一步骤都记录了下来,一方面为自己留存,一方面觉得其他的教程帖都是垃圾,按照我的这个一步一步来肯定能作成。 最近就到了翻笔记到时候。国内同学有这个需要,我法兰克福服务器在国内连接有点慢,所以打算搬到东京,然后特别欢喜的打开我的帖子一步一步照着配置我的新服务器。 然而噩梦就此开始了。时隔一年,用到了各种软件都有升级,有些甚至安装方法都不一样,本以为半小时说有事情完成,可是光安装包就用了很久。其中一个包由于亚马逊Linux内核升级还报错,虽然找到了解决方案但是我还是不清楚到底有没有正常运行。安装包还好,更折磨人到是一些包到配置文档发生了结构改变,我直接复制之前到内容到新服务器,软件根本不能识别我的配置语句,也就算说,我得重新读一遍新的文档,并且按照新的结构结合我的需求再写一遍。这和我第一次配置有啥区别,并且我沾沾自喜的笔记也毫无作用。 以为半小时到工作量,至少做了有5小时还没搞定。所遇到的问题我也有头绪知道该怎样解决,报出的错误我也差不多能找到原因在那儿,可是我就是想配置个XXX服务器啊,我每天工作重点不是搞这个,我不想将我的大量时间投入在这个一次性工作,因为可能现在学会了可是一段时间后又有了新的问题。突然间也特别理解网上写教程到博主,之前一直好奇为何这么多人写一些错误到教程,有效的却少之又少,现在逐渐明白,那些并不是错误的,只是博主写作当时可以运行可是后边由于某种关系不好使了。就像我到那篇事无巨细的流程贴,现在即使是让我看来,也是一篇行不通的方案。 后来我用了github的安装脚本,星星和分叉都很高,上边还写着在不同的系统都测试通过,我尝试着安装,确实太好用了,随便点几下就同时配置好了L2TP和PPTP,让我自己搞到话估计还需要好久,而这个脚本时间大约只用了十分钟。并且这个repository是开源的,也不用担心有病毒,这只是一些脚本文件,每一个我都能看懂它在干什么,只是我自己做到话,这么多句命令我不能保证全部一次性正确,所以需要搞很久。并且这个开源的代码是随时更新的,像我遇到的软件升级配置文件语法不一样到情形,这个脚本的用户会很快察觉到,并且提交issue快速做出更改。这也是开源共同协作到力量。 这个经历让我特别感慨,感慨到内容就是题目这句话:专业的事情,交给专业到人去做,每个人就尽力把自己到任务做到最好。像刚才配置XXX,我自己再扣下去的话也肯定能搞成,因为第一次我就是这样一步一步弄好的,可是特别的费时费力,并且是一次性的我的成绩用不了多久就被淘汰了。所以这么多时间,我把我的事情做好该多好,将机器学习自动驾驶往前推动那么一丢丢,这样其他人直接用我的成果而给他们方便很多事情。我搭建XXX就直接用他们专业人士到脚本,心情也舒畅,多好。 未来是个协作的社会,我之前所有事总要自己亲自亲为的想法似乎需要多元化一些了。大家各司其职,努力将这个社会推动向更美好。多好啊。 但是同时也是这个经历给自己到感悟,由于配置服务器我曾经全部都弄过一次,所以用网上这个脚本我能根据我的需求做很多自定义的事情,而不是像个黑盒只看这工作了而对其中到流程一无所知。在自动配置完成后我觉得有些地方默认的设置不太好,我直接就能找到它配置文件所在的地儿,并且做出我喜欢的更改,仍然特别的开心。   我所所用到脚本是这个: https://github.com/bedefaced/vpn-install

专业的事情,交给专业的人去做 Read More »

XXX服务器 网页监控查看登陆用户、登陆时间、登陆IP、在线时间、流量统计等信息

之前记录了XXX服务器端怎样查看登陆用户、登陆时间、登陆IP、在线时间、流量统计等信息,保存下来后在/var/log里边一个文本里,查看的时候需要SSH连接到服务器通过cat,tail等文本文件查看器查看,不够方便。我的这个服务器同时跑着我的博客,LAMP方案,一直在思考如果能网页端查看就太棒了。 之前的方案在这里:https://shuspieler.com/blog/756/ 就在刚才想到了一个迂回解决方案,显示效果稍微有点low,但是能看到哪个用户在线,能查看历史连接,以及标题中所有的那些信息,凑合着已经解决了我的需求。具体解决办法如下: (默认我认为读者也配置好了http服务器,不一定是apache和PHP,其他的理论上也可以) 通过下边命令将log文件软连接到网页文件夹: sudo ln -s /var/log/XXX-ppp0.log /var/www/html/ 之后,通过浏览器尝试打开 http://服务器IP/XXX-ppp2.log 提示Forbidden禁止连接。这是预想到的,因为权限问题,运行apache的用户没有权限读取这个log文件。 通过ls -l 查看/var/log/XXX-ppp0.log得知这个文件属于root组的root用户。apache默认用户是www-data,为何使这个用户有读取权限,我的解决办法是将XXX-ppp0.log换成www-data所在的组,也就是同名的www-data组,同时将XXX-ppp0.log权限设置成组成员可读,命令如下: sudo chgrp www-data /var/log/XXX-ppp0.log sudo chmod g+r /var/log/XXX-ppp0.log 第一句将XXX-ppp0.log的组换成了www-data,第二个命令赋予了这个文件组成员可读的权限。 之后查看文件权限长这样: 第二个r代表了组成员有读取权限,并且这个文件还属于root,但是组换成了www-data。 之后通过浏览器访问下边的页面即可看XXX用户情况,多个ppp的log是放之多用户冲突: http://服务器IP/XXX-ppp0.log 根据上篇教程贴可知,如果用户在线,日志中之写入了登陆信息,当用户离线,则写入离开时间以及流量用量等信息。 **************************************************** username: XXX clientIP: XXX.XXX.XXX.XXX device: ppp0 xxxIP: 172.16.0.1 assignIP: 172.16.0.10 logintime: 2018-06-10_17:11:20 如果打开那个网页在线,说明当前XXX正在线,如果离线,则打开网页显示如下: **************************************************** username: XXX clientIP: XXX.XXX.XXX.XXX device: ppp0 xxxIP: 172.16.0.1 assignIP: 172.16.0.10

XXX服务器 网页监控查看登陆用户、登陆时间、登陆IP、在线时间、流量统计等信息 Read More »

XXX服务器记录登陆用户、登陆时间、登陆IP、在线时间、流量统计等信息

搞了个XXX服务器以备不时之需,服务器流量是有限额的,所以花了点时间研究了研究记录使用量功能。现在不仅可以记录每个用户用了多少流量,还可以记录下来登录时间登陆IP(PPTP有效,L2TP不知为何采集不到) 步骤很简单,在/etc/ppp/ip-up文件最下边添加下边的脚本: echo “****************************************************” >> /var/log/XXX-${1}.log echo “username: $PEERNAME” >> /var/log/XXX-${1}.log echo “clientIP: $6” >> /var/log/XXX-${1}.log echo “device: $1” >> /var/log/XXX-${1}.log echo “xxxIP: $4” >> /var/log/XXX-${1}.log echo “assignIP: $5” >> /var/log/XXX-${1}.log echo “logintime: `date -d today +%F_%T`” >> /var/log/XXX-${1}.log 在/etc/ppp/ip-down文件最下边添加下边的脚本: echo “downtime: `date -d today +%F_%T`” >> /var/log/XXX-${1}.log echo “bytes sent: $BYTES_SENT B” >> /var/log/XXX-${1}.log

XXX服务器记录登陆用户、登陆时间、登陆IP、在线时间、流量统计等信息 Read More »

将服务器php版本升级到了7.0

有危险但是一切安好的升级   之前在将网站升级到https的途中,一直找不到mod_ssl该安装哪个。直接yum install mod_ssl提示与php版本不兼容,索性我就将之前的httpd卸载,然后直接yum install httpd,不带任何数字。当然最后挺成功的,虽然我都不知道安装都是哪个版本都apache以及php。 之后在wordpress后台老是一个大大都警告,以及很多插件用不了,phpmyadmin也用老版都才行,而且那个警告说我用的版本已经不提供支持了,所以决定更新到最新版php70。 先停用apache:service httpd stop 卸载旧版本:yum remove httpd 可以看到一些相关都包也被卸掉了,我的结果是这样的: Dependencies Resolved ================================================================================ Package       Arch         Version                   Repository           Size ================================================================================ Removing: httpd         x86_64      

将服务器php版本升级到了7.0 Read More »

给Linux新加或者修改Swap交换内存(Amazon EC2 )

在亚马逊的主机搭建我的个人博客一个多月了,最近安装了一些插件,以来丰富我的博客的功能,另外好几个插件是统计和管理型的,这样让我对自己对小站有更详细的了解。 然而也就装了三四个插件后,网站访问变得出奇慢,基本上可以说是无响应。这个时候申请ssh登陆服务器也会超时,如果之前登陆过的话,每输入任何一个字母都等很久,多数命令并不能执行返回cannot allocate memory的错误。起初我以为是cpu或者网络传输到达免费额度了,所以数据传不过来或者cpu计算能力不够。一直觉得1G内存用来跑一个网站绰绰有余了,就没考虑内存出问题,可是其他问题查了一个遍都正常,那只能是内存用完了。实际测试确实是这个问题。 这是我都个人小站待机时候都内存状态,没有任务也没有客人访问都时候,物理内存就用掉900多M,可见不添加虚拟内存毫无疑问会卡死。 最好的解决方法就是增加内存,可是这同时增加支出。。。我作为学生本来就用的amazon免费资源,所以这条路走不通了。 第二个很好的方法就是增加交换内存。把硬盘的一部分拿出来,当内存不够用的话可以暂时存在这里做个缓冲。亚马逊免费套餐也良心的很,硬盘最大可以达到30G而且是SSD,之前传输文件速率能达到71M/S,已经相当棒了。所以我着手开始给我的虚拟机增加虚拟内存。一般来说服务器提供商默认是不设置虚拟内存的,所以我们添加后应该能大幅度提高使用性能。 有两种方法: 使用一个文件作为交换内存 新增一个分区作为交换分区 第一种方法很方便也是我喜欢用的,并且也有利于之后调整虚拟内存的大小,只需要更改那个文件大小就可以了。看下边的步骤。 下边步骤都需要root权限,su切换到root或者用sudo 首先如果你设置过或者默认有虚拟内存,需要先停用掉: swapoff -a 然后新建一个文件用来当作交换文件用: dd if=/dev/zero of=/swapfile bs=1M count=1024 这个命令生成一个在根分区的空文件,大小为1G,可以根据个人喜好更改地点和大小。总大小为bs*count:块大小与块数量都乘积。 mkswap /swapfile swapon /swapfile 运行这两个命令就开启了虚拟内存。 下一步设置开机自动加载,不然刚才的虚拟内存只对本次有效: 在/etc/fstab 写入下边的配置: /swapfile none swap defaults 0 0 或者编辑/etc/rc.local文件,加入以下内容(具体根据自己的文件路径): swapon /swapfile 这样用文件作为交换分区就设置好了,如果以后需要更改大小就很简单,先swapoff -a停用掉交换分区,把之前的swapfile删掉再重新生成一个满意大小的文件就可以了,下边开启以及设置开机自启动命令相同。 可以用free -m 查看一下,是不是多出了swap内存。 第二种方法设置一个swap磁盘分区: 首先是停掉现有的swap分区:swapoff -a 用fdisk命令(例: fdisk /dev/xvda1)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。 mkswap /dev/xvda2 格式化swap分区,这里的xvda2要看您加完后p命令显示的实际分区设备名 swapon

给Linux新加或者修改Swap交换内存(Amazon EC2 ) Read More »

安装Centos 7 后恢复Windows 启动项

今天试了下CentOS 7,安装之后发现Win7的启动项不见了。一般安装Linux过程中会自动识别windows系统并添加引导项,centos的问题在于默认不支持ntfs分区,导致win7被无视了。 恢复步骤如下: 1. 添加EPEL源(ntfs-3g在该源中): $ yum search epel 只找到一个epel-release.noarch, 就装它了。 # yum install epel-release 2. 安装ntfs-3g用于识别ntfs分区: # yum install ntfs-3g 3. 重新生成引导项: # grub2-mkconfig -o /boot/grub2/grub.cfg 搞定!

安装Centos 7 后恢复Windows 启动项 Read More »

centos7中yum安装ntfs3g

CentOS默认源里没有ntfs3g,想要添加ntfs支持,无非是自己下载编译安装或者加源yum安装。 昨天重新安装了一个CentOS7,用的是添加aliyun的epel源来yum安装的方式,简单易行。 1、加源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2、安装 yum update;yum install ntfs3g 来源:http://mirrors.aliyun.com/help/epel,说明里面没有写CentOS7的源,实际上是有的,把里面的5/6改成7就行了。

centos7中yum安装ntfs3g Read More »

Win7启动修复MBR(Win7+Linux删除Linux后进入grub rescue的情况)

事因:我的笔记本原先同时安装了Win7+Linux,昨天发现硬盘实在不够用(才60G,虽然还有个500G的移动硬盘),就想把里面的Ubuntu格了。都是用虚拟机做测试的多。后来就格了Ubuntu所在的分区。重启后出现命令窗口:grub rescue:_,一看,记起来需要重写mbr才行。 解决方法: 1、在光驱插入win7安装盘或者用USB启动(win7支持USB直接启动安装); 2、选择完语言选项后,进入下一步,选择底下的系统修复而不是继续安装; 3、自动搜索完已经安装的系统后,进入下一步; 4、不要让Windows自动修复,没用的,进入命令提示符模式; 5、先输入命令bootrec /fixmbr 回车,再输入命令bootrec /fixboot 回车; 6、重启系统即可重新恢复Win7启动模式。

Win7启动修复MBR(Win7+Linux删除Linux后进入grub rescue的情况) Read More »