如何在 Ubuntu 环境下搭建邮件服务器
1先决条件
每个域必须有一个DNS服务器。建议不要使用Live域用于测试目的。在本教程中,将在实验室环境中使用测试域exampletst。在这个假设域名的DNS服务器应该在至少以下记录。
exampletst的forward zone配置:
IN MX 10 mailexampletst
mailexampletst IN A 192168101
exampletst的Reverse zone配置:
192168101 IN PTR mailexampletst
在配置邮件服务器的过程中,这些记录可以根据系统的要求进行修改。
2设置主机名
首先,必须在/etc/hostname和/etc/hosts文件中指定邮件服务器的主机名。前者应仅包含主机名。
root@mail:~# vim /etc/hostname
root@mail:~# vim /etc/hosts
## IP Fully Qualified Domain Name Hostname ##
192168101 mailexampletst mail
增加用户
每一个Linux用户,在默认情况下,系统会为其自动创建一个邮箱。这些用户和邮箱将被用作电子邮件帐户和它们各自的邮箱。创建一个用户是很容易的。
root@mail:~# adduser fourbyte
安装和配置SMTP
服务: postfix
配置文件路径 /etc/postfix/
执行脚本 /etc/initd/postfix
日志文件 /var/log/maillog
端口 TCP/25
SMTP:安装postfix
postfix是广泛使用的SMTP服务器之一,因为它是稳定的、轻量级的、可扩展的、高度可定制的。安装postfix可以使用apt-get的完成。
root@mail:~# apt-get install postfix
在安装过程中,需要指定电子邮件服务器和域名的类型。
由于此邮件服务器就会直接向目的地发送电子邮件,我们选择Internet Site。
邮件服务器的域名也需要配置,这可以从确保该邮件服务器发送的所有邮件都有@ exampletst作为发件人域。
postfix的配置文件存储在/etc/postfix目录。下面的配置文件是非常重要的。他们中的一些可能不存在,因此需要手动创建。
transport:主要用于定义邮件如何被路由到特定的目标域。绕过DNS查询可以是一个很好的例子。在这种情况下,人们可以发送到域XYZcom的电子邮件直接通过IP地址XYYX不考虑任何DNS查询的结果。
access:可用于安全目的,如阻止发件人/收件人和他们的域名。
aliases:用于定义用户别名。例如,发送到userA的邮件可以由userB和userC接收。
maincf:是postfix的配置文件。
SMTP:准备配置文件
差不多可以准备配置文件了。transport与aliases配置文件没有默认提供,需要手动创建。
root@mail:~# cd /etc/postfix
root@mail:/etc/postfix# touch transport aliases
maincf
首先需要备份maincf然后再进行修改。根据下面的配置添加或修改配置文件。有关参数的更多详细信息,请参阅官方README和配置手册。
root@mail:/etc/postfix# vim maincf
## the name of the server ##
myhostname = mailexampletst
## alias definitions ##
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
## transport definition ##
transport_maps = hash:/etc/postfix/transport
## myorigin defines the domain name for emails originated from this server In this case, all outgoing mail should have '@exampletst' as sender domain ##
myorigin = exampletst
## mydestination parameter specifies what domains this machine will deliver locally, instead of forwarding to another machine ##
mydestination = mailexampletst, localhostexampletst, localhost, hash:/etc/postfix/transport
## the smarthost address Not used in this tutorial and will be covered in the future##
relayhost =
## the trusted sender networks postfix will not forward mails originated from other subnets ##
mynetworks = 127000/8 [::ffff:127000]/104 [::1]/128 192168100/24
## mailbox size in bytes 0 denotes no limit ##
mailbox_size_limit = 0
## postfix will listen on all available interfaces ie eth0, eth1, eth2 and so on ##
inet_interfaces = all
transport
邮件域exampletst被定义为在本地传递不需要任何DNS查询。
root@mail:/etc/postfix# vim transport
exampletst local:
exampletst local:
root@mail:/etc/postfix# postmap transport
aliases
假设所有发送到userA的所有电子邮件可以由userB接收,别名文件需要按如下所述进行修改。
下载Ubuntu系统
首先是找到下载页面,然后点击服务器版的下载地址。下载完最新版本的软件后,你把ISO文件刻录到CD上。于是,你就可以从光盘启动服务器了,整个操作系统的安装大概需要20分钟的时间。
安装完成后,操作系统自动启动到命令行提示符。这时,你登录你的姓名,按ENTER键,添加你的密码。然后,键入“sudo apt-get install ubuntu-desktop”命令就会解开Ubuntu系统的图形界面。
服务器版的Ubuntu通常只包含一个命令行界面。经过约20分钟,你就可以重新启动机器,并使用鼠标来操作你的桌面了。
更改IP设置
如果你目前连接到一个DHCP路由器,Ubuntu在网络链路方面不会有任何问题。 当你准备开始提供文件服务时,你可能会希望手动配置IP地址,以使客户端更容易恢复。
然后对系统访问、参数设置、网络配置进行更改。点击IPv4设置选项卡,改成手工设置。点击加入IP地址,然后选择“OK”。
最后对你的路由器进行设置,或者储备一个静态地址并将DHCP设置动态发送到其它客户端,或整个网络都采用手动设置IP地址的方式。
添加用户
在系统、管理器、用户和组里增加新的用户。按一下解锁键,输入你的密码,然后点击验证。单击添加用户,增加一个新的网络登录名和密码,如此重复增加那些需要访问该服务器的用户。
如果他们不需要访问服务器,那设置的配置文件就不需要访问权限,而只要成为桌面用户即可。单击管理组,把那些所有需要访问服务器的用户添加到一个组里。
共享文件
接下来开始选择那些需要共享的主文件夹,设定为本地属性或者共享属性。继续打开下一层的文件夹,激活共享文件夹,然后点击创建共享。
如果要对整个组的用户赋予文件夹的访问权限,那只要打开权限表,给相应的组设置打开、关闭和写、删除文件的权限就可以了。
通过上述步骤,就用Ubuntu系统建立起了一个免费的文件服务器。
1、首先安装SVN这个软件
apt-get install subversion
2、在home目录下创建一个名为svn的文件夹(文件夹的名字随便起)
mkdir /home/svn
3、创建数据仓库(可以根据需要创建多个)
svnadmin create /home/svn/test
4、启动svn网络服务
svnserve -d -r /home/svn
其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。
/home/svn指定svn数据仓库存放的目录位置
5、设置svn: 方式的访问权限
在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserveconf 这个文件,找到以下几行,
并把前面的注解符号 ‘#’ 去掉,注意千万在每行的前面别留任何空格。
anon-access = read
auth-access = write
password-db = passwd
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。
password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserveconf 在
同一个目录,下面看看怎么配置 passwd文件中的内容。
[user]
# harry = harryssecret
# sally = sallyssecret
harry 和 sally 这两行分别定义了可以对 repo 进行写入的用户的用户名和密码。我们可以在下面加上
自己的用户名和密码,比如
testsvn = tester
这样就给了用户 testsvn 往 repo 中写的权限。存盘退出后,svn 服务器就算正式可以运行了!
把所有需要管理的项目都放在 /home/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库。
这样就可以使用svn客户端通过 “svn co svn://IP地址/数据仓库目录” 的方式把服务器上的数据仓库拉到本地了。
最近升级了下linode,发现svn 不能提交和更新,报svn: E000061: Unable to connect to a repository at URL这样的错误,后来查了些资料,原来是svn的端口没有打开,svn的默认端口是3690,在ubuntu里查看端口打开情况,命令是 netstat -anp,把svn服务重新启动下就可以了,命令为svnserve -d -r /home/svn
1、首先这里安装openssh-server openssh-client,如果用的是VPS之类的一般都默认安装好了,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。
sudo apt-get -y install openssh-server openssh-client
2、安装git,这个核心软件,不可或缺。
sudo apt-get -y install git
3、添加gitolite用户和同名用户组,加上--system参数,用户就不会在登陆界面显示。
sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
4、生成ssh key,一路回车下来。
ssh-keygen -t rsa
5、将当前用户的ssh pub key复制到/tmp下备用。
cp ~/ssh/id_rsapub /tmp/ubuntugegepub
如果你是ssh远程登陆到服务器上安装,就要把本地的key复制到远程的机器上
scp ~/ssh/id_rsapub gitoliteserver:/tmp/ubuntugegepub
6、安装gitolite,在ubuntu中已经集成了,不用自己去下载。
sudo apt-get -y install gitolite
7、切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
sudo su - gitolite
8、执行初始化安装gitolite。
gl-setup /tmp/ubuntugegepub
9、把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh pub key错了,如图就是成功了。
git clone ssh://gitolite@localhost/gitolite-admingit
今天看到果壳第一届MC建筑比赛才发现果壳也有MC小组诶~然后我就来秀一下自己仅存的一点技能了。。那就是在ubuntu上搭forge服务器。为什么是在linux上?因为我手边没有windows,还有就是因为能展现zhuang技术bi。
话不多说,下面是正文。服务器版本是1710,Forge-1710-101321291
1、安装必要组件,我很推荐装一个screen,因为这样你可以让服务器在后台跑
apt-get install screen default-jdk
在安装完java之后,用java -version看一下是否安装正确
2、创建一个MC服务器的目录并且切换过去
mkdir /yourpath/minecraft/
cd /yourpath/minecraft //yourpath改为自己想要的路径
3、下载MC服务器的压缩包
wget -O minecraft_serverjar https://s3amazonawscom/MinecraftDownload/versions/1710/minecraft_server1710jar (这是一行)
cp minecraft_serverjar minecraft_server1710jar
4、启动服务器
java -Xmx2048M -Xms2048M -jar minecraft_serverjar nogui
提示没有同意EULA
5、签署“两个同意”文件
如果有不会用vi编辑器的同学,留言或者百度,我懒的写。。
vim eulatxt
eula=true 这里本来应该是false的
vim serverproperties 这个文件里应该还有端口和地图名字、服务器欢迎语句的设置
online-mode=false
6、如果你想玩的是原版的MC服务器,那么再次启动服务器,你的服务器就这么架设好了
java -Xmx2048M -Xms2048M -XX:ParallelGCThreads=16 -jar minecraft_serverjar nogui
(-Xmx最大内存 -Xms最小内存 -XX:ParallelGCThreads同时调用CPU数量,建议一半或1/4或者不设)
下面开始讲Forge
1、下载Forge必要组件
cd /yourpath/minecraft
wget http://filesminecraftforgenet/maven/net/minecraftforge/forge/1710-101321291/forge-1710-101321291-installerjar
wget http://filesminecraftforgenet/maven/net/minecraftforge/forge/1710-101321291/forge-1710-101321291-universaljar
2、安装forge server
java -jar forge-1710-101321291-installerjar nogui --installServer
3、启动forge server
java -jar forge-1710-101321291-universaljar nogui
启动完毕后输入 /stop 关闭服务器
4、将forge server合并到MC服务器
mkdir unzip
cd unzip
unzip /minecraft_server1710jar
unzip /forge-1710-101321291-universaljar
Archive: /forge-1710-101321291-universaljar (这两句是上面那句命令的结果)
replace META-INF/MANIFESTMF [y]es, [n]o, [A]ll, [N]one, [r]ename: A
zip -r /Forge-minecraft_server1710jar
5、启动服务器
java -Xmx8192M -Xms4096M -XX:ParallelGCThreads=16 -jar Forge-minecraft_server1710jar nogui (这是一整行)
搞定~
mod的安装和Windows上并没有什么区别,只要会用cp和wget命令就好了~
0条评论