CentOS配置svn服务

一、安装subversion

安装subversion服务软件

#yum install subversion

查看安装后文件的分布情况

#rpm -ql subversion

卸载subversion

#yum remove subversion

停止subversion服务

#killall svnserve

二、创建仓库

以创建多个仓库为例

#svnadmin create /var/svn/demo
#svnadmin create /var/svn/test

/var/svn/demo和/var/svn/test为所创建两个新仓库的路径,理论上可以是任何目录。这里我取/var/svn为所有仓库的根路径,在目录下面分别创建仓库。

三、配置仓库

针对每个仓库单独配置,分别修改每个仓库conf目录下的三个配置文件(authz、passwd、svnserve.conf)

1.修改authz文件,这个配置文件里面可以设置用户组和用户目录权限

#vim /var/svn/demo/conf/authz
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = admin,user1,user2
# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@admin 	= rw
*	=

上面加粗部分是我配置的内容,第一部分配置一个用户组admin 有成员admin和user1、user2三个;第二部分配置目录权限,设置admin组(前面加@符号)的权限为读写权限,其他成员没有权限(* = )

2.修改passwd文件,设置访问当前仓库的用户和密码

#vim /var/svn/demo/conf/passwd
passwd文件配置

3.修改svnserve.conf文件,开启权限控制等功能

找到第一个常规选项[general],把前面是一个#号的去掉#号,如下是我的demo仓库配置内容

#vim /var/svn/demo/svnserve.conf
[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
realm = demo

注意:所有的行都必须顶格,否则报错。

备注:多个仓库使用同一套账号密码认证,可以通过修改各个仓库的配置文件svnserve.conf 来实现,将认证文件和密码账号文件指向同一个文件即可。

四、启动和关闭服务

1.启动服务

#svnserve -d -r /var/svn --listen-host
192.168.1.100

命令中/var/svn是我所有仓库的所在的根目录,如果单个仓库,可以直接写仓库地址即可,比如启动demo仓库,#svnserve -d -r /var/svn/demo –listen-host 192.168.1.100

2.停止服务

#killall svnserve

五、访问仓库项目

我们有两个代码仓库/var/svn/demo 和/var/svn/test,那么在客户端访问时可以用。

svn://192.168.1.100/demo
svn://192.168.1.100/test

六、开放服务器端口(可选)

svn默认端口是3690,如果你设置了防火墙,你需要在防火墙上开放这个端口,iptables如下配置:

#/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
#/sbin/service iptables save

(完)

Windows更改远程桌面默认端口号

一、判断端口是否开启

在命令行里输入telnet 127.0.0.1 3389 查看是否开启远程桌面,

 

二、修改注册表端口号

1.进入以下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp

找到右边的PortNamber项,其默认值是3389(在后面的括号中显示),选择十进制修改成所希望的端口即可,例如3344。

2.再打开以下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP\Tcp (windows 10 为 RDP-Tcp)

同上将PortNumber的值(默认是3389)修改成端口3344。

3.修改完毕,重新启动电脑,以后远程登录的时候使用端口3344就可以了(端口号可以是大于1024的任意端口,但是不要和已有的服务端口冲突即可)。

 

三、防火墙设置

打开控制面板,找到防火墙并且打开高级设置,在入站规则中添加允许TCP 3344端口进入。

然后客户端在访问的时候,使用在运行:mstsc,然后输入:192.168.1.100:3344 就可以了。

FTP服务器主动模式与被动模式

一、FTP协议及端口

FTP只通过TCP连接,没有用于FTP的UDP组件。FTP不同于其他服务的是它使用了两个端口,一个数据端口和一个命令端口。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。

 

二、主动模式和被动模式

主动模式(active mode)也称为标准模式,被动模式(passive mode),两种模式主要体现在数据传输时候的发起方不一样,导致服务器需要开放的端口也不一样。

 

主动模式下,当完成认证之后准备传输数据时,客户端发送命令PORT xxxx,服务器主动连接客户端指定的端口号,客户端开放的端口是随机选择的。此时,服务器防火墙需要开放的两个TCP连接端口为21、20端口。

 

被动模式下,当完成认证之后准备传输数据时,客户端认证完成发送命令PASV,此时服务器会自动打开两个随机端口并发送PORT xxxx命令给客户端,然后客户端发起从本地端口到服务器的端口xxxx的连接用来传送数据。在被动模式下,服务器需要开放端口包括21以及1024到65535之间的端口号。

 

IIS下的FTP服务,默认开启的是主动模式,需要设置服务器防火墙开放TCP协议20、21端口供FTP使用。

 

三、客户端连接FTP模式切换

IE浏览器以及我的电脑,设置IE浏览器打开“Internet 选项”,找到高级下的“浏览”节点,将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”的勾选去掉。

设置以上完成之后,可以在我的电脑上直接浏览FTP服务器。

 

Filezilla 客户端设置主动模式:

打开filezilla 客户端,选择菜单【文件】-【站点管理】-【传输设置】,单选中间的主动模式即可。

四、防火墙NAT服务器IP问题

对于服务器使用内网IP地址,然后通过防火墙NAT出去的,需要设置服务器外网对应的IP地址。

Windows服务器IIS中,通过设置防火墙支持来完成:

在Filezilla server中,点击设置进入如下界面设置对应开放的端口号范围以及外网IP地址:

我遇到的情况是在windows 2008 服务器上,本省服务器防火墙可以开放任意端口,但是在外设防火墙下做了NAT转换,本身开放的端口也就只能是21和20端口,其他端口没有自动开启,导致外部连接只能通过主动模式。这样的方式就是在于对一般用户,他没办法选择任何工具自动连接FTP服务器,需要选择主动模式才行。

修改SSH默认远程端口为21号端口

在防火墙配置的规则下默认只开放了21端口,需要远程通过ssh管理服务器,经过测试可以设置,具体步骤如下。

 

一、修改sshd服务默认监听端口

#vim /etc/ssh/sshd_config

找到#port 22去掉注释修改为port 21

 

二、修改iptables防火墙过滤规则

1.将22端口修改为21端口号

#vim /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

端口修改为

-A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT

 

2.重启iptables服务,重新加载配置生效

#service iptables restart

 

三、修改SElinux规则

1.安装 semanage selinux规则管理软件

#yum -y install policycoreutils-python

 

2.查看现有的端口情况

#semanage port -l|grep -w ’21’(精确匹配21端口使用情况)

101-1

3.把21端口添加到ssh服务端口组(可以先停止SElinux:setseforce 0)

#semanage port -a -t ssh_port_t -p tcp 21

此时再用(2)的方法查看21端口使用情况,同时存在ssh和ftp服务端口里。

 

四、测试

重启服务器并测试通过putty等软件ssh链接服务器21端口是否成功

#reboot

以上设置完成之后,默认的FTP服务21端口可以继续使用,ssh服务也可以使用21端口连接。

Mysql数据库服务器连接失败的问题处理

一、数据库连接失败的情况

  1. 数据库服务没有正常运行或者服务器已经卡死;
  2. 账号没有权限或者配置文件绑定了连接IP地址;
  3. 服务器防火墙iptables没有开放端口;
  4. 服务器防火墙selinux没有开放httpd服务连接数据库权限。

二、查找解决数据库服务失败的原因

说明:以下解决方法在linux中处理,windows中查找方法类似

  1. 登录服务器查看服务器是否有报错信息以及内存用量是否已经用完

#free –m

  1. 通过以下命令检查现有开机启动的项目

检查Mysqld服务开机启动是否正常,如果在中途有重启过服务器,并且没有设置mysqld为开机服务器自启动,可能导致连接数据库失败。

#chkconfig –list |grep mysqld

92-1

  1. 检查现有运行服务中是否有mysqld

#pstree

92-2

  1. 查看配置文件是否指定或者绑定了访问的IP地址

92-3

在社区版本5.1版本之后,配置文件中一般不会默认存在绑定IP地址的配置,之前在ubuntu的mysql配置文件中有存在过类似语句。如果有可以删除或者注释该语句。

  1. 防火墙iptables状态检查

#service iptables status

92-4

  1. 检查selinux运行状态

# sestatus –v

92-5

  1. 检查selinux中httpd服务权限

#getsebool -a | grep httpd

92-6

其中有一项 httpd_can_network_connect_db –> off 为关闭状态,现在我们将其开起来,完成之后在selinux上允许链接数据库:

#/usr/sbin/setsebool -P httpd_can_network_connect_db on

 

  1. 终极大招:重启服务器

以上完成之后,一般情况如果还是不行,将数据库服务器重启一下,可以再检查服务器错误日志文件记录的内容,查找是否有其他原因导致服务启动失败。