Home > 工作记录
  • 【工作】Linux 实用的端口转发工具:socat安装使用记录

    写在前面: 在实际生产中我们经常会遇到到一个场景就是,用一台机器作为转发服务器,连接AB两个网段,将转发服务器的某个端口上的流量转发到B网段的某台机器的某个端口,这样A网段的服务器就可以通过访问转发服务器上的端口访问到B网段的服务器端口。   这样的场景一般在和客户建立专线的连接时候经常用到,一般也可以采用iptables做转发,但是比较复杂,socat可以很轻松的完成这个功能。   socat可以看做netcat(nc)的替代产品,作用是在两个流之间建立双向的通道,且支持众多协议和链接方式:ip,tcp,udp,ipv6,pip...
    阅读全文 →
  • 【工作】Linux 用于内网主机名和IP解析的DNS主从集群服务部署

    写在前面: 之前研发代码程序中调用的服务器地址都是写的主机名,通过配置/etc/hosts来做解析,但是每次新增机器都需要在每台机器中添加主机名和IP的解析,不但效率很低,忘记添加或者写错解析,还会造成一些意想不到的问题。 准备工作: 1.运行环境: OS: CentOS release 6.5 主DNS:192.168.162.43 从DNS:192.168.162.44 2.临时关闭selinux # setenforce 0 3.添加防火墙规则 # vi /etc/sysconfig/iptables   -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT -A INPUT -m state --state N...
    阅读全文 →
  • 【工作】生产环境中MySQL Drop 删除(百G级、T级)大表的解决方法

    摘星怪  /
     / 工作记录
    状况说明: 在生产环境中,时常会遇到需要删除一个大的mysql数据表,一般表的大小都在百G以上,因为INNODB会维护一个全局独占锁(在table cache上面),所以mysql在对大表做DROP TABLE 过程中,所有操作都会被HANG住,这个过程会持续很长时间,直到DROP TABLE完成才释放,这样就会影响到线上数据库的使用。   同时,从硬盘上删除一个百G以上的文件,也会造成系统的I/O开销飙高,影响其他程序运行,这也是我们需要避免和解决的问题。 原理分析: 本文中快速 DROP TABLE 利用了操作系统的 Hard Link(硬链接) 的原理。...
    阅读全文 →
  • 【工作】Nginx 实现域名的登录验证功能

    摘星怪  /
     / 工作记录, 应用服务
    【背景说明】 研发有个需求,访问公司某个域名下的某个url时候需要认证,只有输入正确的用户密码才允许访问web内容。 【实现思路】 Nginx服务中的"ngx_http_auth_basic_module"模块可以实现此要求,默认情况下编译安装完nginx后,就已经安装启用了ngx_http_auth_basic_module模块,如果不需要这个模块,可以加上 --without-http_auth_basic_module关闭。 ngx_http_auth_basic_module模块指令: 语法: auth_basic string | off; 默认值: auth_basic off; 作用:默认表示不开启认证,后面如果跟上字符,这些字符会...
    阅读全文 →
  • 【工作】Centos 6.5 PHP 5.3 yum升级到5.5、5.6、5.7版本方法

    系统环境: OS:CentOS 6.5 php version:  5.3.3 1.卸载系统已有php # yum remove php*   注意:对于线上环境运行上面的命令时候,确保机器没有对外提供业务,否则执行后会导致业务异常。 2.安装Remi的YUM源 Remi repository是包含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供维护。有个这个源之后,使用 YUM 安装或更新 PHP、MySQL、phpMyAdmin 等服务器相关程序的时候就非常方便了。 CentOS 6 Yum源: # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm # rp...
    阅读全文 →
  • 【工作】线上Nginx升级OpenSSL版本防止安全漏洞

    摘星怪  /
     / 工作记录
    背景说明: 最近公司用网藤对网站业务进行了风险分析,发现了OpenSSL漏洞,由于线上的OpenSSL版本过旧,现在需要着手升级,公司的Web Server是Nginx,而Nginx安装时分为动态编译和静态编译OpenSSL两种方式,所以先查看是由那种方式安装的。 一、判断webserver是动态编译还是静态编译ssl的两种方法: 1.查看Nginx编译参数 输入以下指令,查看Nginx的编译参数: # /opt/nginx/sbin/nginx -V   nginx version: nginx/1.4.7 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)  TLS SNI support enabled confi...
    阅读全文 →
  • 【工作】解决ACPI Error: No handler for Region错误导致linux系统自动重启

    报错现象: 线上有台服务器运行了了大概半年多,突然收到报警服务器重启了,可以确定不是人为操作导致的重启,以下是排查过程。   服务器品牌:Dell PowerEdge R720  系统版本:CentOS Linux release 7.1.1503 内核版本:3.10.0-229.el7.x86_64   查看messages日志报错信息如下: # tail -1000 /var/log/messages | grep -i error   查看dmesg报错信息如下: # dmesg | grep -E "error|Error|ERROR|fail|Fail|FAIL"  报错原因: 由于BIOS中开启了中断重映射,在ERST(芯片集中的错误校验表)校验时发生错误,...
    阅读全文 →
  • 【工作】Centos上ssh连接服务器缓慢的解决办法

    现象: 在机房内网中,用ssh连某台服务器非常慢,基本需要等待15-30秒才会提示让输入密码,但是ping目标机器,延时都是微秒级别,可见并非网络原因造成连接缓慢。 解决办法: 方法一: 修改本机的客户端配置文件ssh_conf,注意,不是sshd_conf  # vi /etc/ssh/ssh_config   找到: GSSAPIAuthentication yes   改为: GSSAPIAuthentication no   保存退出: # service sshd restart   再连目标机器,速度就飞快了。   解释:GSSAPI ( Generic Security Services Application Programming Interface) 是一套类...
    阅读全文 →
  • 【工作】CentOS下搭建sftp服务并指定不同用户的访问目录和权限

    摘星怪  /
     / 基础知识, 工作记录
    【写在前面】 客户现在有个需求,需要创建个文件服务器,可以实现对不同用户访问不同目录,且用户拥有不同访问权限。 目前文件服务器有很多种,常见的有vsftp、samba、sftp等,为了省事,我直接采用sftp实现这个需求。 目前服务器上都安装了ssh服务,则默认就包含sftp功能,只要sshd服务器启动了,sftp功能也就可以直接使用,端口就是ssh服务设置的登录端口,默认是22。 PS:本文只是描述sftp实现需求过程,其中一些安全设置操作省略没写,如果你是搭建用来给外网用户使用,请注意安全加固问题,起码要更改ssh的端...
    阅读全文 →
  • 【工作】Docker实践记录(二):使用Harbor搭建Docker私有仓库

    摘星怪  /
     / 工作记录
    写在前面: 针对于公司内部使用的镜像,我们希望推送到本地的私有docker仓库中,以供公司内部相关人员下载使用,所以准备研究使用harbor完成此功能,此文章只是研究,实际生产环境需要采用高可用的架构,之后也会搭建研究。 Harbor介绍: Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP...
    阅读全文 →
  • 【工作】Centos下静默(命令行)方式安装Oracle 11g

    【准备环境】 一般来说,对于生成环境运行的linux系统,都不会安装图形界面,所以如果想要在没有图形界面的Linux上面安装Oracle,我们需要使用Linux的静默安装方式,以下为所需资源: 硬件需求: 物理内存不少于1G 硬盘空间不少于5G swap分区空间不少于2G 软件需求: OS:CentOS release 6.8 Oracle:11gR2 【安装步骤】 --------------------------------------以下命令使用root用户操作-------------------------------------- 1. 下载地址: # wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_...
    阅读全文 →
  • 【工作】Docker实践记录(一):Docker 17.06 版本安装

    摘星怪  /
     / 工作记录, 虚拟化
    【写在前面】 公司打算要把线上服务器上面的微服务迁移到docker上运行,之前研究过1.13版本的docker,现在docker版本经历了大的变动,之前的笔记已经无法使用,所以打算把部署过程中的一些心得记录下,以便以后查阅使用。有不足之处欢迎指正,文章内容参考了网上很多博客,就不一一列举了。 【文章内容】 一、关于Docker: Docker老版本(例如1.13),叫做docker-Engine,Docker从17.03版本开始采用基于时间的YY.MM形式的版本命名方案,分为企业版(docker-EE)和社区版(docker-CE)。 CE版又分为edge版(测试)和stabl...
    阅读全文 →
  • 【工作】Centos 7/6 内核版本由3.10.0 升级至 4.12.4方法

    【写在前面】 公司打算上Docker服务,目前需要安装运行环境,Docker新的功能除了需要Centos 7系统之外,内核的版本高低也决定着使用的效果,所以在此记录下系统内核版本升级过程。 注:对于线上环境的内核版本还需要根据实际情况谨慎选择,越新的版本未来可能遇到的问题越多,此文只是记录升级方法而已。 【文章内容】 关于内核版本的定义: 版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm) 版本命名格式为 “A.B.C”: 数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候...
    阅读全文 →
  • 【工作】Cobbler安装系统报错Nothing to boot: No such file or directory

    【问题描述】: 很早之前使用笔记本的虚拟机安装过cobbler批量安装系统,后来离职,电脑还给上家公司,现在新公司也有批量安装系统需求,于是在新笔记本的虚拟机安装cobbler,安装过程是按照之前的笔记,按理说没有问题,但是安装完毕后,新建一个虚拟机模拟装机,发现报如下错误: Nothing to boot: No such file or directory (http://ipxe.org/2d03e13b)”. 且报错上面的信息显示虚拟机已经获得了dhcp分配的IP地址。 查询资料也没找到解决办法,开始觉得应该tftp的问题,但是看了很多文章,也查看了配置,觉得并...
    阅读全文 →
  • 【工作】KVM启动虚拟机报错:error: Unable to read from monitor: Connection reset by peer

    报错现象: 线上有台虚拟机关闭很久没用了,重新启用的时候发现无法启动,报错现象如下:   # virsh start win2008 error: Failed to start domain win2008 error: Unable to read from monitor: Connection reset by peer   解决过程: 根据网上的说法是执行下面的命令即可:   # virsh managedsave-remove  win2008   但是我执行后启动还是报错,最后经过排查发现,是服务器内存不足导致无法启动,cache里面有大量的缓存占用,如果是非生产环境可以重启服务器,但是生产环境则不行,可以按照下面的方法释放内存...
    阅读全文 →
  • 【工作】Linux使用非root用户启动Apache、Nginx等服务的方法

    【写在前面】 对于Linux系统而言,普通用户只能使用1024以上的端口启动服务,而1024以内的端口只能由root用户使用,而通常像apache或者Nginx等服务,使用最多的是80和443端口,如果通过其他非root用户启动,就会报错如下: (13)Permission denied: make_sock: could not bind to address [::]:80 (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down 一般情况下,线上的web服务都会使用root用户来启动,但是有时候为了安全或者是某些特殊...
    阅读全文 →
  • 【工作】Nginx使用stream模块实现TCP负载均衡(TCP协议转发、Socket转发)

    摘星怪  /
     / 工作记录
    【写在前面】 线上新项目,研发想实现使用Nginx做socket转发做负载均衡,其实说白了就是想实现基于TCP协议的后端业务的高可用。一般来说Nginx可以做http协议转发,并不支持tcp协议,但是从1.9.0版本开始增了“ngx_stream_core_module”模块,可以用于TCP协议的代理和负载均衡功能实现。 【模块介绍】 ngx_stream_core_module模块默认是没有编译的,需要编译安装Nginx时添加"--with-stream"配置参数。下面是官方网站上的一个示例:地址:http://nginx.org/en/docs/stream/ngx_stream_core_module.html   worker_proce...
    阅读全文 →
  • 【工作】Centos上使用命令行形式安装启动Juniper客户端

    摘星怪  /
     / 工作记录
    【写在前面】 公司有个新项目是跟浙商银行合作,研发需要连接到浙商银行内网去获取数据并开发。 现在情况是行方要求走专线或者vpn形式,由于专线申请需要一定的时间,所以前期采取vpn方式,而银行方提供的vpn为 Juniper Network Connect,需要在window环境下登录web端,安装软件登陆,现在研发想实现在linux系统下连接登录并开发,由于银行方也不清楚Juniper 在linux下的安装方式,所以将安装成功方法记录下。 【安装过程】 1、安装软件运行的依赖库 说明:目前基本线上的服务器都适用的64位系统,而客户端软件需要3...
    阅读全文 →