学校中实验室要求架设一台服务器,现在系统已经装好了,不知道怎么可以设置能让外网访问
申请了固定的IP 如果是公网IP 则在网关那里做该IP的NAT 数据 80 端口指向到你服务器的内网IP地址 如果是内网IP 则只能在内网里头用IP地址来访问你的服务器
看你描述 估计出外网的可能性不大 还是在内网做测试吧 效果一样的 就是验证一个技术试验而已
VMWare提供了三种工作模式,host-only(主机模式)、NAT(网络地址转换模式)、bridged(桥接模式)。
1host-only(主机模式)
在某些特殊的网络调试环境中,如何要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的,VMWare虚拟机不能访问互联网。
2NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此使用NAT模式虚拟系统也就无法和本地局域网中的其他真实主机进行通讯。
采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网,虚拟机就能访问互联网。 设置上网方式:本机网上邻居属性-->VMnet8属性-->TCP/IP属性-->常规与备用配置都设定为自动获取,虚拟机网上邻居TCP/IP都设定为自动
3bridged(桥接模式)
在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。
使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。
如果是你是局域网上网方式,虚拟机使用网桥连接方式,只要设置虚拟机的IP地址与本机是同一网段,子网、网关、DNS与本机相同就能实现上网,也能访问局域网络。
如果你是拨号上网方式,虚拟机使用此种方式连接,就要在虚拟机内系统建立宽带连接、拨号上网,但是和 宿主机不能同时上网。
虚拟机中却不能上网,原因可能如下:
1、主机是Windows XP Professional SP2或者是Windows Server2003 SP1,如果是这样,则需要把VMnet1、VMnet8的防火墙关闭。
方法是:右击“本地连接”选择属性→高级→设置,在“Windows防火墙”对话框中单击“高级”,将VMnet1和VMnet8前面的“√”去掉就可以。 2、你的主机安装了瑞星、江民或者天网防火墙,或者其他防火墙软件,这些防火墙软件你没有进行正确的配置,导致VMware不能通过其内置的NAT功能共享上网,这时,可以把第三方的防火墙软件关闭。
3、你可能在VMnet8或者VMnet1启用了XP内置的“Internet连接共享”,你要知道,使用VMware的NAT功能,你不需要在 主机上启用共享,因为VMware已经内置了NAT的共享。如果是这样,请去掉这些共享,然后重新启动VMware 的NAT服务(或者重新启动计算机)
4、可能是你使用了VMware Workstation的“绿色”版或者“精简”版。如果是这样,请使用完整版本安装。如果你需要中文,可以安装中文的汉化补丁。
推荐作法:
主机不安装第三方的防火墙软件,安装VMware Workstation的完整版本(就是从VMware Workstation网站或者一些下载网站下载的VMware Workstation的英文版(VMware-workstation-553-34685的大小是924M),安装汉化补丁,修改XP的防火墙,让VMnet1和VMnet8不使用防火墙(主机网卡使用)。创建虚拟机使用NAT网卡,在虚拟机中设置为“自动获得IP及DNS地址”,这样做,一般情况下都可以直接上网。
关于VMware用NAT与主机共享上网的一般设置
虚拟机的网络连接里的“本地连接”就用“自动获取IP地址”就好,有固定IP的需要到“Internet协议”设置。(右键“本地连接”-双击“Internet 协议”,看看是不是自动的吧!固定IP的也在这里改!)
1当然是将虚拟机的上网方式选为NAT咯。右键你要设置的虚拟机选“设置”(因为有的不止虚拟一台),在“硬件”中选“以太网”,将右边的网络连接改为NAT-确定。
2点菜单栏里的“编辑”-选“虚拟网络设置”,先将“自动桥接”给去掉(去掉钩钩),再选“DHCP”开启DHCP服务,点“开始”-应用,再按同样的方法开启“NAT”的功能。
祝你好运!!!
接到一个任务,有2台机器,其中有一台机器A有每天数据库的备份,我想另外的一台机器B定时从A中copy到B的制定目录,A不共享数据库备份的目录。考虑到FTP方式无法跨越NAT(网络地址转换),而HTTP方式在安全性和可靠性方面都得不到保证,在文件较大时也会有一定的限制。决定采用一种基于HTTP协议,编写客户端和服务器端程序,在一个客户端用HttpWebRequest对象向指定的URL发送POST和GET请求,在服务器端通过程序接受请求,进行文件传输,这样,发送和接收都由自己编写的程序进行控制,可以方便地实现诸如身份验证、数据加密和断点续传等功能,同时可以穿越防火墙和NAT。这样做就可以实现在Net中跨Internet的文件加密传输。
在net中实现跨Internet的文件加密传输的程序源码
一、数据上传
1客户端代码
//从文本框中获得文件的全称,含路径名
string strFilePath=txUpFileText;
//获得文件的长度
FileInfo fi=new FileInfo(strFilePath);
long lFileLength=fiLength;
//获得文件名
string strFileName=strFilePathSubstring(strFilePathLastIndexOf("\\")+1);
//创建HttpWebRequest对象,传入路径名,将文件名和长度作为参数传给服务器端
HttpWebRequest objRequest=(HttpWebRequest)HttpWebRequestCreate(string
Format(@"{0}FileName={1}&FileLength={2}",txUpURLText,strFileName,
lFileLengthToString()));
//定义Request对象的方法为"post"
objRequestMethod="POST";
//定义Request对象的内容类型为"application/octet-stream"
objRequestContentType="application/octet-stream";
//定义请求内容的长度
objRequestContentLength=((int)(lFileLength/8+1))8;
//定义一个请求的流
Stream reqStream=objRequestGetRequestStream();
//用DES算法加密此请求流
byte[] desKey={1,0,1,1,5,6,7,8};
byte[] desIV={1,2,3,4,5,6,7,8};
DES des=new DESCryptoServiceProvider();
CryptoStream encStream=new CryptoStream(reqStream,desCreateEncrytor(desKey,desIV),CryptoStreamModeWrite);
//定义内存缓冲区用于文件的读写
int iBufferSize=4095;
byte[] buffer=new byte[iBufferSize];
//打开文件,准备读取
FileStream fileStream=new FileStream(strFilePath,FileModeOpen,FileAccessRead);
int iReadLength=0;
//将文件内容读入缓冲区
iReadLength=fileStreamRead(buffer,0,bufferLength);
while(iReadLength!=0) {
//将读出的文件内容写入加密流
encStreamWrite(buffer,0,iReadLength);
iReadLength=fileStreamRead(buffer,0,bufferLength);
}
//关闭请求的流
encStreamClose();
reqStreamClose();
fileStreamClose();
//向服务器提出请求并获得结果3
HttpWebResponse sp=(HttpWebResponse)objRequestGetResponse();
string strContent="";
int iLen=(int)spContentLength;
if(iLen>0) {
//将结果流写入到二进制流bContent中
Stream resStream=spGetResponseStream();
byte[] bContent=new byte[spContentLength];
resStreamRead(bContent,0,iLen);
spClose();
//由于结果是一个二进制数据,必须将结果解码成字符串
char[] charContent=new char[spContentLength];
TextDecoder dc=TextEncodingUTF8GetDecoder();
int charLen=dcGetChars(bContent,0,bContentLength,charContent,0);
foreach(char c in charContent) strContent+=cToString();
}
2服务器端代码
//判断请求的ContentType,过滤非法请求
if(RequestContentType!="application/octet-stream") return;
//获得上传得文件名和长度
string strFileName=RequestQueryString["FileName"];
int iFileLength=RequestTotalBytes;
//构造服务器端文件名
string strFilePath=ServerMapPath("")+IOPathDirectorySeparatorChar+"Upload"+IOPathDirectorySeparatorChar+strFileName;
//判断文件是否存在
if(FileExists(strFilePath)) {
//如果文件存在,返回文件名和文件长度
FileInfo fi=new FileInfo(strFilePath);
long lFileLength=fiLength;
ResponseWrite("File["+strFileName+"]Exists!Length="+lFileLengthToString());
ResponseEnd();
}
//如果文件不存在,打开文件流创建该文件
FileStream fileStream=FileCreate(strFilePath,iFileLength);
//用DES算法解密该文件流
byte[] desKey={1,0,1,1,5,6,7,8};
byte[] desIV={1,2,3,4,5,6,7,8};
DES des=new DESCryptoServiceProvider();
CryptoStream desStream=new CryptoStream(fileStream,desCreateDecryptor(desKey,desIV),CryptoStreamModeWrite);
//定义内存缓冲区大小
int iBufferSize=4095;
//读取请求流并写入文件中
byte[] buffer=new byte[iBufferSize];
int iReadLength=0;
iReadLength=RequestInputStreamRead(buffer,0,bufferLength);
while(iReadLength>0) {
desStreamWrite(buffer,0,iReadLength);
desStreamFlush();
iReadLength=RequestInputStreamRead(buffer,0,bufferLength);
}
desStreamFlush();
desStreamClose();
fileStreamClose();
//返回结果
ResponseWrite("File["+strFileName+"]UploadSuccess!");
ResponseEnd();
二、数据下载
1客户端代码
//获取下载文件名
string strFileName=txDownFileText;
//定义文件偏移量
int iOffset=0;
//创建HttpWebRequest对象,传入路径名,将文件名和偏移量作为参数传给服务器
HttpWebRequest objRequest=(HttpWebRequest)HttpWebRequestCreate(string
Format(@"{0}FileName={1}&Offset={2}",txDownURLText,strFileName,iOffset));
//定义Request对象的方法为"get"
objRequestMethod="GET";
//定义Request对象的内容类型为"application/octet-stream"
objRequestContentType="application/octet-stream"
//获得请求结果
HttpWebResponse sp=(HttpWebResponse)objRequestGetResponse();
Stream resStream=spGetResponseStream();
string strFilePath=txDownPathText;
//如果文件存在,则删除
if(FileExists(strFilePath)) {
FileDelete(strFilePath);
}
//创建文件
int iBufferSize=4095;
FileStream fileStream=FileCreate(strFilePath);
//解密返回的流
byte[] desKey={1,0,1,1,5,6,7,8};
byte[] desIV={1,2,3,4,5,6,7,8};
DES des=new DESCryptoServiceProvider();
CryptoStream decStream=new CryptoStream(resStream,desCreateDecryptor(desKey,desIV),CryptoStreamModeRead);
byte[] buffer=new byte[iBufferSize];
int iReadLength=0;
//读取返回流
iReadLength=decStreamRead(buffer,0,bufferLength);
while(iReadLength>0) {
//写入文件流中
fileStreamWrite(buffer,0,iReadLength);
iReadLength=decStreamRead(buffer,0,bufferLength);
}
fileStreamFlush();
decStreamClose();
fileStreamClose();
resStreamClose();
return "File["+strFileName+"]Download Success!";
2服务器端代码
//获得上传的文件名和偏移量
string strFileName=RequestQueryString["FileName"];
long lOffset=ConvertToInt64(RequestQueryString["Offset"]);
//构造文件全路径名
string strFilePath=ServerMapPath("")+IOPathDirectorySeparatorChar+"Download"+IOPathDirectorySeparatorChar+strFileName;
//若文件不存在,则返回错误信息
if(!FileExists(strFilePath)) {
ResponseClear();
ResponseWrite("File["+strFileName+"]Not Exists!");
ResponseEnd();
}
//打开文件
IOFileStream fileStream=new IOFileStream(strFilePath,IOFileModeOpen,IOFileAccessRead,IOFileShareRead);
//根据上传的偏移量参数设置偏移量
if(lOffset>0)
fileStreamSeek(lOffset,IOSeekOriginBegin);
//定义输出流
Stream resStream=ResponseOutputStream;
//用DES算法加密此数据流
byte[] desKey={1,0,1,1,5,6,7,8};
byte[] desIV={1,2,3,4,5,6,7,8};
DES des=new DESCryptoServiceProvider();
CryptoStream encStream=new CryptoStream(resStream,desCreateDecryptor(desKey,desIV),CryptoStreamModeWrite);
//定义输出文件流的头
ResponseContentType="application/octet-stream";
ResponseAddHeader("Content-Disposition","attachment;filename="+strFileName);
int iBufferSize=4095;
byte[] buffer=new byte[iBufferSize];
int iReadLength=0;
//读取文件
iReadLength=fileStreamRead(buffer,0,bufferLength);
while(iReadLength>0) {
//写入输出流
encStreamWrite(buffer,0,iReadLength);
iReadLength=fileStreamRead(buffer,0,bufferLength);
}
encStreamFlush();
resStreamFlush();
//关闭流
encStreamClose();
resStreamClose();
fileStreamClose();
//ResponseFlush();
//结束输出
ResponseEnd();
⒖蒲械仍嚼丛嚼氩豢��纭⒃嚼丛绞艿酵�绲闹苯踊蚣浣又圃迹�佣�址垂�雌仁谷嗣嵌约扑慊��缦低车目煽啃浴⒖捎眯院驼�逍阅艿囊�蠛推谕�嚼丛礁摺�
众所周知,作为计算机网络系统的核心设备,服务器功能越来越强大,服务器在计算机网络中的地位也日益重要。而服务器至网络的连接性能同样不可忽视,它与服务器的可靠性和整个网络的可靠性同等重要。在实际应用中,无论是网线断了、集线器或交换机端口坏了、还是网卡坏了或各接口接触不良等现象都会造成网络通信连接的中断。或者在网络系统中,服务器、路由器、交换机、集线器以及各种冗余部件等出现各类大小故障时,都将危及网络系统的稳定和可靠运行,这一点人们是有切肤之痛的。毫不夸张地说,网络运行的机制有待完善、网络运行的管理庇点百出、网络运行的维护还不存章理。因此,为了保证网络系统的正常运行,现代网络系统从硬件和软件两方面正在运用多种高新技术,在此,我们将谈谈这几种新技术。本期先探讨自修复技术。
当用户不能正常使用系统而被迫关机时,所造成的损失对于企业来讲,可能是相当大的。然而在实际应用中,不管人们采用了多么先进的防患措施和安全技术来提高系统的可靠性和可用性,这种非正常关机事件总是无法避免的。面对这种关机现象所带来的巨大损失,随着网络安全技术的发展,无可奈何的人们只得把希望寄托在不停机服务器上。采用自修复技术的自修复服务器就是一种无需人工干预、监视和修理的永远不会关机的服务器系统。
所谓自修复服务器是指它能够预测问题、并能根据问题采取纠错处理和优化系统性能的具有智能化管理功能的服务器。它具有如下基本特征,一是问题预测,即可预测一个事件发生过程中所需要的三种不同行为:监视、检测和分析。监视负责观察一个服务器系统的各个部件的性能是否与期望相符。检测就是当某个事件发生时,系统能够及时发现。分析则是根据事件发生的频率和严重性,来判断是否即将发生错误,然后向系统管理员报警;二是纠错处理,一旦预测到错误事件并报警,系统就要采取合适的纠错处理,以防止关机事件的发生。在有些情况下,系统还能够重新动态分配资源,避开问题的出现区域,从而彻底防止关机事件。而在另一些情况下,系统管理员会接到系统提供的如建议增加磁盘容量或替换发生潜在故障的驱动器和部件等处理建议。三是性能优化,采用软硬件配置,通过平衡各个部件之间的负载以及系统的自我调整,从而提高服务器系统的性能。
自修复服务器目前还处于发展阶段,现在向服务器系统中加入自修复功能还是一个动态积累的过程,随着越来越多的自修复功能的实现,服务器系统将最终实现完全的自修复系统的高可靠性目标。自修复技术是高可用性环境中一个非常重要的特点,适合于许多重要的商业应用。
随着依靠服务器系统的企业数量的增加,其中不仅包括企业内部的使用,还包括对外商业需要的使用。服务器能够连续运转变得比以往更加重要。用户可以在任何地方、任何时间在线访问企业服务器。当然,自修复系统还有待于建立统一的工业标准,使之能在cpu通信的设备管理中提供一个通用的框架,为i/o管理和ia-64位处理器结构等几个正在发展中的新技术创造条件。自修复服务器的发展过程是一个动态发展过程,工作原理要求系统具有向事件预测、纠错处理和性能优化中不断添加新的运行方案和作业能力的完善机制,使之最终达到具有全面的自修复性能。
负载均衡负载均衡是提高系统性能的一种前沿技术,也是一种广泛应用于服务器群集系统中的新技术。一台ia服务器的处理能力是每秒几万个,无法在一秒钟内处理几十万甚至上百万个请求。但若能将10台这样的服务器组成一个系统,并有办法将所有请求平均分配到所有的服务器,那么这个系统就会拥有每秒处理几十万到几百万个请求的能力。这就是负载均衡的基本思想。目前市场上有多种负载均衡产品,由于其应用的主要技术不同,所反映的特点和性能也就有所不同,根据这些区别,我们可以将它们分为轮询dns、硬件解决方案、协商式处理和流量分发等负载均衡系统。下面我们就来介绍这些基本系统。
轮询dns:轮询dns方案可以说是技术上最简单、应用上方便、结构上最直观的一种负载均衡方案。其基本原理是,在dns服务器中设定对同一个internet主机名的多个ip地址的映射,在dns收到查询主机名的请求时,系统就会循环地将所有对应的ip地址逐个返回。这样,就能够将不同的客户端连接定位到不同的ip主机上,也就能够实现比较简单的负载均衡功能。但这种方案有两个致命的缺点,一是只能实现对基于internet主机名请求的负载均衡,而不是ip地址,如果是直接基于ip地址的请求则系统无能为力。二是在群集内有节点发生故障的情况下,dns服务器仍会将这个节点的ip地址返回给查询方,也就仍会不断地有客户请求试图与已出故障的节点建立连接。在这种情况下,即使手工修改dns服务器的对应设置,将故障节点的ip地址删除,但由于internet上所有的dns服务器都有缓存机制,所以仍会有成千上万的客户连接不到群集,除非等到所有dns缓存都超时为止。
硬件解决方案:该方案主要是指制造商直接制造出带有nat(网络地址转换)功能的高档路由器或交换机来实现系统负载均衡功能。所谓nat,就是实现多个私有ip地址对单个公共ip地址的转换。该方案的主要缺点,一是由于采用了特殊的硬件,使得整个系统中存在非工业标准部件,极大地影响系统的扩充、维护和升级。二是价格极其昂贵,与软件的解决方案根本是数量级上的差别。三是只能实现对节点系统一级的状态检查,无法细化到服务器一级的检查。
协商式处理:协商式处理又叫并行过滤。这种方案的原理是客户请求会同时被所有的节点所接收,然后所有节点按照一定的规则协商决定由哪个节点处理这个请求。该方案中比较显著的特点就是整个群集中没有显著的管理节点,所有决定由全体工作节点共同协商作出。这种协商式处理方案的特点是,一、由于各节点间要进行的通信量太大,加重了网络的负担,一般需要增加节点通信的专用网络,这又反过来加大了安装维护的难度和费用;二、由于每个节点都要接收所有的客户请求并进行分析,所以加重了网络驱动层的负担,降低了节点本身的工作效率,同时也使网络驱动层很容易成为节点系统的瓶颈; 三、由于要更改网络驱动层的程序,所以并不是一个通用方案,只能够实现对特殊平台的支持;四、在小量节点的情况下协商的效率还可以接受,一旦节点数量增加,通信和协商将变得异常复杂和低效,整个系统的性能会有非线性的大幅度下降。所以此类方案,一般在理论上只允许最多十几个节点;五、无法实现异地节点群集; 六、由于群集内没有统一的管理者,所以可能出现混乱的异常现象。
流量分发:流量分发的原理是所有的用户请求首先到达群集的管理节点,管理节点可以根据所有服务节点的处理能力和现状来决定这个请求分发给某个服务节点。当某个服务节点由于硬件或软件原因发生故障时,管理节点能够自动检测到并停止向这个服务节点分发流量。这样,既通过将流量分担而增加了整个系统的性能和处理能力,又可以很好地提高系统的可用性。
在流量分发中,通过将管理节点本身做一个群集,可以消除由于管理节点自身的单一性带来的单一故障点。当然,在某些流量分发系统中,由于所有客户流量都要通过管理节点,也很容易使管理节点成为整个系统的传输瓶颈。但现代新系统,如turbocluster server,由于可通过直接路由或ip隧道转发机制,成功地解决了这个问题,使得所有对客户响应的流量都由服务节点直接返回给客户端,并不需要再次通过管理节点。
流量分发的具体实现方法有直接路由、ip隧道和网络地址转换三种。
1、IPv6是Internet Protocol Version 6的缩写,译为“互联网协议”,用于替代IP协议(IPV4)的下一代IP协议。
2、IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 操作系统 。有用户想要在Linux上搭建vps这篇 文章 主要介绍了实例讲解搭建Linux系统的VPS的步骤,包括防火墙和SSH等基本软件的部署 方法 ,非常细致,需要的朋友可以参考下
前期准备
需要购买一台拥有 root 权限的 VPS ,我选择的是 搬瓦工 ,当时购买的是 512 M 内存 5 G SSD,500 G 流量/月, 999 刀每年,但是好像现在这种低价套餐已经结束了。有意的朋友可以看一下其他的套餐或者别的公司的 VPS。有的朋友说 DigitalOcean 的速度非常快,看YouTube直接 1440p,但是我还没测试过,目前搬瓦工的速度能满足我的需求,而且 DO 的价格比较昂贵。
服务器购买后,安装 CentOS7,因为以下教程都是基于 CentOS7 的,安装新的 OS 后,搬瓦工会告诉你 SSH 的端口和 root 的密码,这些是自己无法自定义的,要记住了如果实在忘了也可以重置 root 密码,或者直接使用搬瓦工提供的在线SSH登录来操作也可,就是反应比较慢,所以我们以后还是常用 ssh 登录来配置 VPS ,Mac 下直接使用终端就好,win 下自行寻找一个 ssh 工具就好。
登录 ssh 的命令:
复制代码代码如下:
$ ssh -p vps 端 口号 root@vpsIP 地址
登录上以后就相当于在本地操作一样了,你可以使用各种 Linux 命令来操作了。
配置防火墙
如果 SSH 无法登录,那说明防火墙关闭了 SSH 端口,需要通过在线 SSH 登录进去关闭防火墙重新配置。
清除防火墙配置
复制代码代码如下:
$ iptables -F
清除 iptabels 所有表项,同时 nat 设置也没了,但是我们后续的脚本里会配置的,不用担心。如果 SSH 登录正常就不用管防火墙。
安装 firewalld
复制代码代码如下:
$ yum install firewalld firewall-config
$ systemctl start firewalld
PS 我在安装完 firewalld 之后然后启动服务的时候一直显示失败,然后重启了一遍服务器就可以正常的启动 firewalld 服务了,有类似情况的朋友可以重启一下服务器。
修改 SSH 端口
复制代码代码如下:
$ vi /usr/lib/firewalld/services/sshxml
会出现以下的内容:
复制代码代码如下:
SSH
Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines It provides secure encrypted communications If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option You need the openssh-server package installed for this option to be useful
将 port=”22”,修改成搬瓦工提供给你的端口号,然后重载 firewalld 就 OK。
vi 的命令: 按 “i” 是编辑模式,编辑后按 “esc” 退出编辑模式,然后按 Shift 输入“:” 和 “wq” 保存退出 vi。
复制代码代码如下:
$ firewall-cmd --permanent --add-service=ssh
$ firewall-cmd --reload
OK,现在准备工作都已就绪,安装了源,安装配置了防火墙,下一步开始搭建服务了。
搭建 Shadowsocks 服务
这个服务是最简单也是最常用的。
安装组件
复制代码代码如下:
$ yum install m2crypto python-setuptools
$ easy_install pip
$ pip install shadowsocks
安装时部分组件需要输入 Y 确认。小内存 VPS 可以分别安装组件。
安装完成后配置服务器参数
复制代码代码如下:
$ vi /etc/shadowsocksjson
写入如下配置:
复制代码代码如下:
{
"server":"0000",
"server_port":8388,
"local_address": "127001",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
将上面的 mypassword 替换成你的密码, server_port 也是可以修改的,例如 443 是 Shadowsocks 客户端默认的端口号。
如果需要修改端口,需要在防火墙里打开响应的端口,用 firewalld 操作就比较简单了:
复制代码代码如下:
$ vi /usr/lib/firewalld/services/ssxml
下面代码粘贴到里面:
复制代码代码如下:
SS
Shadowsocks port
保存退出,然后重启 firewalld 服务:
复制代码代码如下:
$ firewall-cmd --permanent --add-service=ss
$ firewall-cmd --reload
运行命令,启动 Shadowsocks 服务
运行下面的命令:
复制代码代码如下:
$ ssserver -c /etc/shadowsocksjson
至此 shadowsocks 搭建完成,shadowsocks 已经可以使用,如果你没有过高的要求,下面的步骤可以省略,下面是后台运行 Shadowsocks 的步骤。
安装 supervisor 实现后台运行
运行以下命令下载 supervisor:
复制代码代码如下:
$ yum install python-setuptools
$ easy_install supervisor
然后创建配置文件:
复制代码代码如下:
$ echo_supervisord_conf > /etc/supervisordconf
修改配置文件:
复制代码代码如下:
$ vi /etc/supervisordconf
在文件末尾添加:
复制代码代码如下:
[program:ssserver]command = ssserver -c /etc/shadowsocksjson
autostart=true
autorestart=true
startsecs=3
设置 supervisord 开机启动,编辑启动文件:
复制代码代码如下:
$ vi /etc/rclocal
在末尾另起一行添加:
复制代码代码如下:
$ supervisord
保存退出(和上文类似)。另 centOS7 还需要为 rclocal 添加执行权限:
复制代码代码如下:
$ chmod +x /etc/rclocal
至此运用 supervisord 控制 Shadowsocks 开机自启和后台运行设置完成。重启服务器即可。
搭建 Strongswan 实现在 iOS 上连接 ***
补充:Linux基本命令
1ls命令:
格式::ls [选项] [目录或文件]
功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。
常用选项:
-a :列出目录下的所有文件,包括以 开头的隐含文件。
-d :将目录像文件一样显示,而不是显示其他文件。
-i :输出文件的i节点的索引信息。
-k :以k字节的形式表示文件的大小。
-l :列出文件的详细信息。
-n :用数字的UID,GID代替名称。
-F : 在每个文件名后面附上一个字符以说明该文件的类型,“”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示FIFOS;“=”表示套接字。
2cd命令
格式:cd [目录名称]
常用选项:
cd 返回上一级目录。
cd / 将当前目录向上移动两级。
cd - 返回最近访问目录。
3pwd命令
格式: pwd
功能:显示出当前工作目录的绝对路径。
相关阅读:Linux主要特性
完全兼容POSIX10标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 24版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
搭建Linux系统的VPS的步骤相关文章:
1 Linux VPS中使用Crontab实现定时重启任务
2 Linux系统怎么用命令释放内存
3 Linux服务器上的PPTP 搭建方法有哪些
4 VPS怎么设置安全配置
5 Linux查看操作系统安装时间的方法总结
0条评论