如何搭载Linux服务器
开发网站的时候,常常需要自己配置Linux服务器。
本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情。这主要是我自己的总结和备忘,如果有遗漏,欢迎大家补充。
下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分命令稍有不同。
第一步:root用户登录
首先,使用root用户登录远程主机(假定IP地址是128199209242)。
ssh root@128199209242
这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。
接着,修改root用户的密码。
passwd
第二步:新建用户
首先,添加一个用户组(这里假定为admin用户组)。
addgroup admin
然后,添加一个新用户(假定为bill)。
useradd -d /home/bill -s /bin/bash -m bill
上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。
接着,设置新用户的密码。
passwd bill
将新用户(bill)添加到用户组(admin)。
usermod -a -G admin bill
接着,为新用户设定sudo权限。
visudo
visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。
root ALL=(ALL:ALL) ALL
在这一行的下面,再添加一行。
root ALL=(ALL:ALL) ALL
bill ALL=(ALL) NOPASSWD: ALL
上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。
root ALL=(ALL:ALL) ALL
bill ALL=(ALL:ALL) ALL
然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。
exit
ssh bill@128199209242
第三步:SSH设置
首先,确定本机有SSH公钥(一般是文件~/ssh/id_rsapub),如果没有的话,使用ssh-keygen命令生成一个(可参考我写的SSH教程)。
在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的authorized_keys文件。
cat ~/ssh/id_rsapub | ssh bill@128199209242 'mkdir -p ssh && cat - >> ~/ssh/authorized_keys'
# 或者在服务器端,运行下面命令
echo "ssh-rsa [your public key]" > ~/ssh/authorized_keys
然后,进入服务器,编辑SSH配置文件/etc/ssh/sshd_config。
sudo cp /etc/ssh/sshd_config ~
sudo nano /etc/ssh/sshd_config
在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000)。
Port 25000
然后,检查几个设置是否设成下面这样,确保去除前面的#号。
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile ssh/authorized_keys
UseDNS no
上面主要是禁止root用户登录,以及禁止用密码方式登录。
接着,在配置文件的末尾,指定允许登陆的用户。
AllowUsers bill
保存后,退出文件编辑。
接着,改变authorized_keys文件的权限。
sudo chmod 600 ~/ssh/authorized_keys && chmod 700 ~/ssh/
然后,重启SSHD。
sudo service ssh restart
# 或者
sudo /etc/initd/ssh restart
下面的一步是可选的。在本机~/ssh文件夹下创建config文件,内容如下。
Host s1
HostName 128199209242
User bill
Port 25000
最后,在本机另开一个shell窗口,测试SSH能否顺利登录。
ssh s1
第四步:运行环境配置
首先,检查服务器的区域设置。
locale
如果结果不是en_USUTF-8,建议都设成它。
sudo locale-gen en_US en_USUTF-8 en_CAUTF-8
sudo dpkg-reconfigure locales
然后,更新软件。
sudo apt-get update
sudo apt-get upgrade
最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭HTTP、HTTPs、SSH以外的端口,再比如安装Fail2Ban,详细可参考这篇《Securing a Linux Server》。
由于 历史 原因,Linux具有众多的发行版。随着Linux使用人群的日益壮大,许多Linux入门者,乃至于一些经验丰富的开发者和运维人员也会开始疑惑:该怎么在不同的Linux发行版中进行选择呢?尤其在国内,Windows占据的个人用户时长庞大,个人用户普遍对于Linux认知不多。我们来看一看都有哪些Linux发行版是值得关注的吧!
DebianDebian系统是Linux的几大基础发行版之一,如今最火的Ubuntu就是Debian的衍生系统。其最大的特点就是运行稳定,非常适合用于服务器开发,软件包通常选择比较稳定的版本。同时,Debian十分符合开源精神,默认不包含任何专有驱动,且开发维护完全由社区驱动。Debian1具备图形化的安装方式,使用APT软件包管理,对视新手使用是比较友好的。然后,由于其没有预装启动的特性,某些硬件的驱动安装往往比较麻烦,需要安装者自行进行硬件驱动的安装和适配。同时,其软件包为追求稳定往往更新时间比较久远,版本较久,一些新的开发工具也比较难找到。
CentOS
CentOS是一款企业级的Linux发行版,它在红帽Linux的免费源代码中重新构建而来,继承了红帽Linux的许多优秀功能和特性,也免去了支付企业版的费用,深受国内开发者和运维人员的喜爱。CentOS系统十分稳定,具有安全、低维护、高可预测和高可重复的特性。CentOS的使用群体庞大,尤其在国内的服务器开发领域,其具有巨大的使用占有率。作为一个主流的Linux发行版本,CentOS广受欢迎。其使用较为简单,且相关教程和答疑较多,尤其在中文社区具有很好的氛围,使得初学者可以快速上手。CentOS对各种工具和驱动支持友好,出错概率低,对于希望能够稳定使用的用户十分方便。其所使用的YUM包管理工具也十分好用,版本较新,方便开发环境和部署环境的搭建。
Arch Linux
如果你对于每次更新系统都要重新安装的方式感到厌倦,Arch Linux就是你最好的选择。Arch采用滚动发行的方式进行操作系统的更新,只需安装一次,此后的更新就可以通过网络执行更新的包的拉取,然后在无需重装,即可直接进行滚动更新。同时,Arch还具有轻量级、自定义化程度高等特性,用户可以对系统从键盘布局到硬盘分区进行自定义化的设置,十分灵活。同时,Arch具有完备的使用手册和文档,中文化程度高,初学者也可也依靠阅读手册快速入门。Arch Linux对于追求自定义,厌倦重新安装的个人Linux使用者而言,是一个不错的选择。
总结
Linux发行版众多,百花启发,在国内的使用者中,目前仍以Ubuntu和CentOS等最为流行,同时,在一些特定领域,如Alpine和Kali等发行版也占据了重要的地位。我们在进行选择时要考虑自身使用情况,再结合不同发行版的特点,找到适合自己的Linux系统。
这个要从两个领域分析,在linux桌面领域用ubuntu和deepin比较多,在服务器领域用centos和debian比较多。linux发行版有很多种,从应用领域可以分为桌面系统领域和服务器系统领域。
在桌面系统领域中前几年一般都是用Ubuntu比较多的,因为这个发行版相对来说对新手比较友好,国内没有好的发行版可以用。最近几年国内的deepin逐渐发展起来,特别是对国内一些软件通过wine技术做了适配,和其他公司开发了中文输入法,办公软件等,这样用户不用在自己去折腾中文输入法,办公软件。所以deepin在国内使用的人也很多。
linux发行版在服务器领域中国内一般用centos系统的比较多,其次是debian。可能是由于centos来自红帽企业版源代码编译而成,但是centos是开源的,所以国内的服务器用centos的比较多。国外服务器一般用debian的比较多,debian发行版稳定性比较好,像ubuntu也是基于debian的基础上开发的,但是在国内debian使用的用户不如centos多,一般公司服务器大部分都是使用centos。
我个人使用的桌面系统是archlinux,这是一个比较小众的linux发行版,archlinux以轻量级著称,而且可以自己定制,官方文档比较详细,一般跟着操作就可以了。但是可能对新手来说不够友好,没有图形安装界面,都是在命令行操作的。桌面环境用的xfce4,这个环境占用内存比较低,终端用的deepin终端。
大家在工作中和平时都是用什么桌面系统和服务器的呢?欢迎大家留言讨论个人用户或者需要界面进行图形化操作的是ubuntu比较多,实际互联网生产环境中Red Hat Enterprise Linux和CentOS比较多,也有少量OpenSuse
国内的一般用户是使用ubuntu的linux发行版的。这确实是一个比较好用的linux发行版。
但是我更推荐国产的深度linux的操作系统。因为这是一款非常非常优秀的,面向于新手的linux操作系统。
首先它也具有开始菜单和windows比较相近。此外呢,它的快捷键和windows操作系统是保持了高度的一致的。所以您使用它并不会有任何的障碍。
另外它还自带了QQ啊,微信啊,这些我们国人常使用的软件。另外还自带了wps办公软件。所以您使用深度linux的操作系统,是能够完全满足日常的工作以及 娱乐 需求的。
除了深度linux操作系统之外,还有一款linux操作系统也是比较流行的,那就是archlinux操作系统。不过一般没有新手安装这款linux操作系统。因为它的安装就是纯命令行的相,对于新手来说,这是一个非常困难的事情。
不过因为它强大的灵活的自定义性,有相当多的linux爱好者会愿意折腾一下,然后配制出自己的独一无二的linux操作系统。
在个人使用的linux操作系统上,大概就是我上面说的这些了。但是对于服务器来说,centos是一个非常常用的linux操作系统。因为它和红帽linux操作系统是源于一系的。所以它的稳定性非常的高,颇受大家的欢迎。
另外还有一些小众的linux操作系统,比如黑客专用的,或者说是安全专用的。也是有一些用户的。这里就不详述了。
作为一个多年的Linux用户,用的Linux发行版是Windows 10 Pro
唯一一个打 游戏 写代码使用“生产力”工具都毫无压力的Linux发行版。
Windows Subsystem for Linux(简称WSL) 几乎可以覆盖一个日常轻需求用户的大部分功能。而且这个发行版是真的可以随便打 游戏 画工程图用onenote2016和手写笔记笔记的。
比如最近做算法开发,需要使用ros, 涉及到串口驱动等。用cmder做终端,打开就是Linux。
使用Win版本的VSCode在windows文件系统上开发(划重点,如果用vscode强行打开linux文件系统会有点问题。但是使用win文件系统就一点问题没有),在linux下面直接编译。一切都自然的理所应当。
尤其是装了XMing(x client)以后,rviz gazebo 都毫无压力。
Linux作为开源系统,各大厂商制作的发行版本非常多,下面简单罗列了常用版本及特色。
一、Ubuntu
Ubuntu是一款基于Debian发行版,以Unity作为默认桌面环境的Linux操作系统。他是世界上最流行的发行版之一,最新发行版为桌面、移动及其桌面移动混合版的优化。
二、Kubuntu
Kubuntu是Ubuntu的衍生版,使用KDE作为默认桌面环境 除此之外,二者大同小异,发行时间也相差无几。
三、Mint
Mint易于使用且功能强大。它基于Ubuntu开发,可靠而安全的特性使其成为了最为流行的Linux发行版之一,被称为Windows及Mac OS后最为流行的家用操作系统。
Mint有着丰富的桌面选项,默认为Cinnamon桌面, 你还可以使用MATE, KDE或Xfce。
四、Deepin
Deepin 是一个基于 Ubuntu 的发行版,它专门设计的深度桌面环境,旨在吸引新的 Linux 用户。它的界面简单直观,同时还有自己的应用商店。系统设置面板的是所有发行版中最好看的一个。 DMusic, DPlayer 和 DTalk 是其专有的应用程序。
五、PCLinuxOS
PCLinuxOS 专为普通 PC 用户设计:安装驱动,获取办公软件,编辑照片,上网以及使用多媒体等普通用户的操作被特殊照顾,被设计为最易使用的功能。
六、Linux Lite
Linux Lite 是一个最小化的省空间型发行版, 它拥有一个干净简单的 Xfce 桌面,风格类似 Windows。
七、Zorin OS
Zorin OS 是专门为 Linux 新手设计的,便于人们从Windows 向 Linux 过渡。它拥有 Windows 用户比较熟悉的功能以及应用。
八、Apricity OS
“最性感的 Linux 发行版”。Apricity没有采用 Windows 式样的 Cinnamon 和 MATE 风格, 转而 提供了一个令人惊叹的桌面换进,比起微软的那一套,它更能让人联想其 Android或者 iOS。
CentOS:可靠的服务器发行版。是一个重新编译可安装的Red Hat E L(RHEL)代码,并提供及时的安全更新的所有套装软件升级为目标的社区项目。目前很多互联网企业在用的发行版本。
Red Hat(红帽):培训、学习、应用、知名度比较高的L发行版本。对硬件兼容性来说也比较不错,版本更新很快,对新硬件和新技术支持较好。Red Hat的开放源码模式提供跨物理、虚拟和云端环境的企业运算解决方案,以帮助企业降低成本并提升效能、稳定性与安全性。
U:流行的桌面L发行版。朝着发展一种“易用和免费”的桌面操作系统做出了极大的努力和贡献,能够与市场上任何一款个人操作系统相竞争。U的优势是固定的发布周期和支持期限、易于初学者学习、具有丰富的文档。
SUSE:拥有让用户满意的漂亮的桌面环境,优秀的系统 管理工具,同时为那些购买盒装版的用户提供最好的印刷品与任何可用的文档。
D:优势是非常稳定、拥有卓越的质量控制、超过20,000数量的软件、比任何其他的L发行支持更多的处理器架构。
占有率最高的应该是centos,几家大的互联网公司的服务器应该全是,比如腾讯,服务器规模预估在百万级别。一些开发人员,特别喜欢用Ubuntu,因为能用图形界面,能点鼠标。
传统行业,特别是有钱的主,比如银行业,那就是Redhat的天下,为什么?因为有商业授权及现场服务支持。
一般使用者都是技术相关人员,一般自己的电脑,用Ubuntu系统的多,这个功能多,更新快,支持多。
如果是在生产上使用,一般centos多,稳定,可靠,但更新慢。
两种都适应相应的使用场景。
拿来就用我首选Ubuntu,一直用的是1404版。服务器我首选FreeBSD
在开发过程中,必然会出现多人同时工作、协着的情况,在嵌入式开发项目中更为平常,这样可以加快项目周期,为产品上市占得时间先机。目前,使用Linux作为开发产品的操作系统情况越来越多,使用越来越广泛。为了交叉编译,为了最接近开发目标,我们一般都会自己搭建一台Linux开发服务器。Linux开发服务器一些常用的功能必须支持,比如Samba、nfs、tftp、httpd等。首先我们需要选择合适的Linux操作系统作为服务器的系统,推荐使用Fedora8、Fedora10等,笔者在长期使用的过程中觉得比较稳定吧!如何安装该操作系统就不多说了。 装好系统后,需要增加Linux OS用户,可以使用命令#adduser XXX;增加XXX用户,#passwd XXX给其设置登录密码。当然使用图形化创建用户也很直观、方便。在这个环节值得注意的一定要设置好该用户的home目录,一般都会设置到该用户的工作目录,各个用户的工作目录需要私有化、独立开来,这样方便些、安全些。 多用户的账户有了,我们应该来打通网络功能了,Fedora有bug,在图形化配置GATEWAY什么的会不成功,请安装如下方法修改: # cd cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 修改配置文件如下: # Marvell Technology Group Ltd 88E8001 Gigabit Ethernet Controller DEVICE=eth0 HWADDR=00:16:e6:db:c2:96 ONBOOT=yes BOOTPROTO=static //这个应该是“static”,而不是“dhcp”或“none”; USERCTL=yes PEERDNS=yes IPV6INIT=no NM_CONTROLLED=yes//这个应该是“yes”,如不修改,链接仍是disconnected; TYPE=Ethernet NETMASK= IPADDR= DNS1= DNS2= GATEWAY= step 3: # service network restart 接下来就需要调试一下Samba功能了,这样在windows下编辑Linux下的代码将非常的便利。命令行下操作方法如下: Vim /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 … root = administrator admin nobody = guest pcguest smbguest dssun = dssun hmchen = hmchen 增加Samba用户; Vim /etc/samba/smbconf [dssun] comment = path = /opt/STM/STLinux-23/devkit/dtvkit/dssun writeable = yes ; browseable = yes valid users = bluo, dssun, hmchen, hqian, sbxiang, tsfu, yrli 设置工作路径,可读写性、有效访问的用户等。 在图形化下也有配置菜单,这个就很简单了,不再叙述。 有了Samba就方便很多了!编译编辑都很不错了!接下来要着手你的开发平台软件,这个对于不同平台的SDK有不同的处理方法,根据自己的SDK来处理。 有了SDK后,我们编译通过后,一般都会进行调试,如何方便的调试呢?一般都会想到使用nfs调试。 以Fedora为例,一般默认安装的没有包括tftp功能,可以使用yum来安装,方便! #yum install tftp; #yum install tftp-server 还需要更改一下tftp的配置,如下: vim /etc/xinetdd/tftp 修改server_args = -s /tftpboot -c,这里的-c一定要加上,否则只能下载不能上传!!! service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/intftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 flags = IPv4 } # mkdir /tftpboot # chmod 777 -R /tftpboot/ # service xinetd restart 记得要关闭防火墙、seLinux不disabled seLinux,Samba有可能只能读不能写,切记。
大致三个原因:
1、免费--Linux是免费的,任何人都可获取而无需付费
2、安全--至今为止,尚未发现linux操作系统上的病毒
3、强大--扩展性强, 用户可以自己定义或改变内核,加入自已的应用程序包,使之更符合特定应用的要求,如web/erp/vod等应用服务器, 以下几个方便是windows或unix(如hp-ux, Aix或Solaris)版本所不备有的功能:
A、自动补全功能:在输入命令时可以按TAB补全命令。
B、模块化设计:只要能稍稍学习一下系统的知识,不用担心系统会出问题,出了问题一般也不用重装,在终端将配置修改一下或者直接还原就可以了。
C、对其它系统支持好:可以挂载其它系统的分区,可以在虚拟机中安装运行其它系统如Windows,可以用WINE来运行部分Windows程序。好像Windows从来无法模拟运行Linux程序。
D、可定制:你可以安装自己喜欢的桌面环境,可以将外观换成自己喜欢的样子,如MAC OS X或者Vista等等,可以很简单地定义快捷键起动自己喜欢的程序,甚至可以自行编译内核,使用符合自己需要的内核,在显示版本上加上自己的名字。
E、够用:相当Windows而言,对我们普通用户来说Linux的功能还差点,主要是软件开发商的支持不够,但一般也足够了,办公用OO或Abiword之类,作图有Gimp,矢量的Inkscape 和Xrar LX,3D有MAYA(这是商业软件),浏览器有Firefox和Opera等,多媒体播放器有Mplayer,音乐播放器有BMP、Audacious等,网络电视有gopcast(没有pplive台多),辞典有星际译王,背单词有recideword(黑客背单词)。应该说基本能满足我们的需要了。
F、cool:现在都说Vista的桌面怎样cool,但真正比较起来,还是Linux在这里更胜一筹,安装过beryl的都知道。
0条评论