服务器上安装virtualbox虚拟机运行centos

弄了两天,今天终于搞定了远程SSH到服务器上的centos,搞了几种网络方式都不行;

我的情况是,我的服务器有几个IP,默认情况下用virtualbox的nat方式上网时,虚拟机是通过主机来上网的,所以不能分配独立的IP给虚拟机

删除nat,使用Bridged Adapter模式 ,进入到centos,默认情况下不能上网,使用图形界面设置eth0网卡,使用dhserver,手动设置独立IP及网关,DNS服务器;为虚拟机分配一个独立IP,并且可以正常上网,正常访问;(注,此种植情况下,分给虚拟机的IP不要在主机上配置。如果两边都配置,会导致冲突)

外部网络ping虚拟机IP时,可以通,但SSH就是连接不上,接着把防火墙关了,在centos下使用:/etc/init.d/iptables stop

检查ssh是否正常运行:service sshd status 如没运行,则:service sshd start

…………………………………………
注:
ifconfig时,可看到网卡:eth0
但在:/etc/sysconfig/network-scripts/ 下即找不到:ifcfg-eth0
此时是因为eth0还没配置,就算是使用setup也无法配置;

配置网卡的IP地址
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
之后就可以找到:ifcfg-eth0

将网卡禁用
ifconfig eth0 down

将网卡启用
ifconfig eth0 up

 

。。。。。。。。。。。。。。。。。。。。。。。。。。

ifcfg-eth0内容:

DEVICE=”eth0″
BOOTPROTO=none
NM_CONTROLLED=”yes”
ONBOOT=”no”
TYPE=”Ethernet”
UUID=”ef9ddd79-5d93-4b1f-b9da-c22d72dbb786″
HWADDR=08:00:27:05:62:C7
IPADDR=ip地址
PREFIX=29
GATEWAY=网关
DNS1=208.64.24.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth0″

11.29 Shell基础实验记录

echo 显示字符,显示信息
read 用户输入内容
$引用变量的内容
env查看环境变量

修改PATH文件:/etc/profile
增加当前目录:
PATH=$PATH:.
export PATH

………………………………………………….

呼叫中心
vim CallCenter.sh

echo “Please enter total unmber”
read totalunmber
echo “Enter resolve number”
read resnumber
echo $((totalnumber-resunmber))
格式:$(())
得出结果

echo “$totalnumber-$resnumber”

………………………………………………….

分数评级:
echo “Please Enter Test Score:”
read score

if  [ $score -lt 80 ]
then
echo “Bad”

elif  [ $score -ge 80 -a $score -lt 90 ]
then
echo “Good”
else
echo “Excellence!!”
fi

“if”和“[”之间需要空格,如果你不空格
[]与里面的表达式与需要空格分开,否则也会报错。

算术比较运算符

num1-eq num2 等于 [ 3 -eq $mynum ]

num1-ne num2 不等于 [ 3 -ne $mynum ]

num1-lt num2 小于 [ 3 -lt $mynum ]

num1-le num2 小于或等于 [ 3 -le $mynum ]

num1-gt num2 大于 [ 3 -gt $mynum ]

num1-ge num2 大于或等于 [ 3 -ge $mynum ]

 

文件比较运算符

-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]

-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]

-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]

-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]

-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]

-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]

-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]

filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]

字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

-z string 如果 string长度为零,则为真 [ -z “$myvar” ]

-n string 如果 string长度非零,则为真 [ -n “$myvar” ]

string1= string2 如果 string1与 string2相同,则为真 [ “$myvar” = “one two three” ]

string1!= string2 如果 string1与 string2不同,则为真 [ “$myvar” != “one two three” ]

………………………………………………….

Case 用法注意要求:
case $引用用户输入的内容 case f in

1);;
2);; 结束用esac
echo “Service:”
echo “l) ls”
echo “2) ls -l”
echo “3) Exit”
echo “Please choice(1-3)”
read choice
case $choice in
1) ls;;
2) ls -l;;
3) Exit;;
*) echo “Wrong input”;;

esac
………………………………………………….
echo “”
read df
case $df in
1);;
2);;
esac

………………………………………………….

循环:

enum=2000
while [ $enum -le 2003 ] 循环范围
do
echo “pleae enter usrname=$enum”
read username
echo “enter email:”
read email
echo “username is $username Email is $email”>> employee.dat
((enum=$enum+1))
done

如果while后的命令执行成功,或条件真,则执行do和done之间的语句,执行完成后,再次判断while后的命令和条件;如果while后的命令执行失败,或条件为假,循环结束

while [ condition ]
do
command1
command2
command3
done

linux下的c基础

This is a c program

#include<stdio.h>

int main()

{
/*This is comment*/
printf(“this is a c program”);
return 0;

}

在linux下用gcc -o sampel samepl.c编译

rpm 安装mysql文件时

可执行文件:usr/bin/
包含文件:usr/include/mysql
库文件在/usr/lib/mysql

只有系统找到程序对应的包含文件和库文件是,可执行文件才能正常运行

 

 

/home
/usr
/etc /etc/ftp* /etc/httpd /etc/ssh* 配置文件
/var /var/ftp /var/httpd
/lib

系统启动引导程序: /etc/lilo.conf /etc/grub.conf
du -sh 查看当前文件夹大小

fdisk -l查看磁盘使用情况
/vi/inittab 系统运行级别 runlevel
fsck 文件系统修复

find /etc -name yun.conf

expr 4 + 5 将在屏幕输出9
算术展开$(())

Linux文件权限学习

u: user
g:group
o: other
a: all
r:read
w:write
x:execute

+: add permission
-: reduce permission
0

rwx 4 2 1 读写执行

chmod 777 dircetory

ps:  process

kill PID_number

history 3历史上刚用的三个命令

which yum   yum命令目录

linux基础管理日志:Linux远程管理 – SSH、VNC

ssh root@192.168.1.1
ssh root@192.168.1.1 who

命令scp用以在两台计算机间进行快速的加密数据传输

scp 源文件夹 目标地址
scp xushao root@192.168.1.1:/home/

-r 用以传输文件夹
-p 传输保留文件夹权限及时间

rsync 两台计算机之间通过ssh协议同步数据

vnc linux图形管理界面

yum install -y tigervnc-server 安装vnc服务端

/etc/sysconfig/vncservers

vim /etc/sysconfig/vncservers

VNCSERVERS=”1:xushao” 配置vnc服务

创建vnc密码
vncpasswd

启用vnc服务 service vncserver start

Centos 6 vnc客户端为tigervcn

yum install -y tigervnc

日志:IPTables防火墙基础及iptables配置管理

Linux中用来实现网络数据控制功能的内核模块netfilter

netfilter可以对网络数据进行允许、丢弃、修改操作

netfilter支持以下数据分类方式:


源、目标IP地址

使用接口

使用协议(TCP、UDP、ICMP等)

端口号

TCP连接状态

netfilter基本概念:

chain(链,也叫过滤点):INPUT、FORWARD、OUTPUT、PREROUTING路由前、POSTROUTING路由后

表(功能):filter、nat、mangle高级参数修改

用户通过iptables命令来管理netfilter模块

iptables通过规则对数据进行访问控制

一个规则占用一行

规则按顺序排列

每个数据包按规则顺序依依匹配,如果有匹配的,则立即执行该规则指定的动作(允许、丢弃)

常用功能:
作为服务器作用:
过滤到本机的流量 — input链 ,filter表
过滤本机发出的流量 output,filter

作为路由器使用:

过滤转发的流量 forward链,filter表
对转发数据的源,目标IP进行修改(nat功能)prerouting,nat表

iptables -t filter -A input -s 192.168.1.1 -j DROP

匹配动作:允许、丢弃、修改

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

列出现有iptables规则:

iptables -L

删除所有iptables规则:

iptables -F

插入一个iptables规则:

iptables -I INPUT 3 -p tcp –dport 80 -s 192.168.1.0/24 -j DROP

删除一个iptables规则:

iptables -D INPUT 3

iptables -D INPUT -p tcp –dport 80 -s 192.168.1.0/24 -j DROP

配置一个NAT伪装:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables规则保存在配置文件:
/etc/sysconfig/iptables

以下命令可以将当前iptables配置保存到配置文件中:
service iptables save

iptables -I INPUT 2 -p tcp –dport 22 -j ACCEPT

控制到本机的网络流量:

iptables -A INPUT -s 192.168.1.1 -j DROP 过滤来自IP的流量
iptables -A INPUT -p tcp –dport80 -j DROP 过滤基于端口80的网页流量
iptables -A INPUT -s 192.168.1.0/24 -p tcp –dport 22 -j DROP

linux学习日志:DNS域名服务

域名是用来标识一个IP地址,因为IP地址难于记忆,所以一般使用域名代替

www.toogoogoo.com
主机名.域名.类型
域名大小写不敏感

一个域名代表一个IP地址

DNS(Domain Name System)服务负责域名与IP地址之间的转换

Linux下域名解析可以通过以下几种方式:

文件(/etc/hosts、/etc/networks)

DNS(domain name system)

NIS
host可用于查询dns

dig也可查,输出详细的信息
dig www.toogoogoo.com

可以通过配置文件/etc/nsswitch.conf控制查询顺序

DNS是一个树状结构,每一级由一个或多个服务器负责提供信息
根服务器-顶级服务器-域名服务器
dig +trace www.toogoogoo.com

DNS查询分为两种类型:

iterative 迭代查询

recursive 递归查询

实际使用中,一般使用迭代+递归方式进行查询

在DNS服务器上,信息以资源记录(resource record)格式保存

一条资源记录(resource record)保存一个信息,常见的资源记录类型有:

A IPv4地址

AAAA IPv6地址

MX 邮件记录

CNAME 别名

PTR 指针(用于逆向解析)

SRV 服务资源

DNS服务器一般分为三种类型:

域主DNS服务器(master)

域从DNS服务器(slave)

缓存DNS服务器(Caching)

DNS服务器中,一个域的信息保存在该域的zone配置文件中

dig -t mx gmail.com
dig -x mx gmail.com
dig -t soa gmail.com

…………………………………………..

BIND(Berkeley Internet Named Deamon)是现今使用最为广泛的DNS服务程序
yun install -y bind bind-chroot bind-utills 安装bing

BIND默认使用TCP、UDP协议,使用端口 53(DNS)、953(rndc)

BIND配置文件保存在:

/etc/named.conf 主配置文件

/var/named/ 域zone文件位置

如果使用了chroot,则配置文件位置为:

/var/named/chroot/etc/named.conf 主配置文件

/var/named/chroot/var/named zone文件

bind配置文件示例保存在:

/usr/share/doc/bind-9.8.2/sample/

以下命令用以检查bind配置文件及zone文件语法:

named-checkconf /var/named/chroot/etc/named.conf

named-checkzone linuxcast.net /var/named/chroot/var/named/linuxcast.net.zone

linux高级学习记录:linux系统日记分析

日志是系统、程序用来记录其运行状态、信息及错误的文件

Linux系统中默认的日志服务是syslog服务

CentOS 6/RHEL6 默认使用的日志服务是rsyslog

service rsyslog start | stop |restart | status

Usage: /etc/init.d/rsyslog {start|stop|restart|reload|force-reload|condrestart}

Linux一般保存以下三种类型日志:

内核信息

服务信息

应用程序信息

rsyslog服务配置文件为:

/etc/rsyslog.conf

Linux系统中日志保存在:

/var/log

tail -f log 可实时监控更新日志信息

message 保存一些正常的信息
secure 登陆信息
boot.log
gdm 内核信息
kern 内核信息
user 用户级信息
mail
daemon 系统服务消息
auth
syslog
lpr 打印系统消息
authpriv 权限系统消息
cron 定时信息
news
uucp
ftp

日志的两个基本概念:

Facility 定义日志信息来源

Priority 定义日志信息类别
Emergency 系统已经不可用
Alert 必须立即处理
Critical器严重错误
Error
Warning
Notice 正常信息
Informational 正常信息
Debug

mail.* -/var/log/maillog 提高写日志的效率
*.info;mail.none;authpriv.none;corn.none /var/log/maillog

将日志信息转发到一个统一的日志服务器,
*.* @@ip (使用tcp协议)