当前位置:首页 » 文件传输 » console接口ftp
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

console接口ftp

发布时间: 2022-07-13 03:50:34

㈠ H3C交换机怎样从Console口倒出config.cfg文件

只使用CONSOLE口的话。只能先记录配置文件。
使用dis cu命令查看配置文件。将显示的命令配置复制下来,粘贴到记事本文本文件中。要注意配置文件的格式。

在另交换机上
<h3c>sys
[h3c]先进入配置模式 导入配置文件,需要同型号才能导入生效的配置文件。
将记录的原配置文件 复制 在配置模式下 右键 粘贴 即可。
最后 要save 保存

㈡ 怎么用console进行渗透测试

实验要求

很简单,攻进操作系统,使用msfconsole进行渗透测试,夺取控制权或者命令电脑做一些动作。

需要达到的效果是使用系统漏洞对操作系统进行渗透测试,再针对一个软件漏洞实现对操作系统的攻击。

实验操作

1、MS08-067漏洞使用

2、浏览器漏洞测试

3、软件漏洞测试

㈢ 华为s5700交换机配置

基础配置
用户模式

登陆设备后,直接进入用户模式,只能执行少量查看配置的命令;

 

视图模式

用户模式下,输入system-view进入视图模式,可执行设备全局配置的命令;

 

局部配置模式

视图模式下,输入局部配置命令,如interface GE 1/0/0,进入GE1/0/0端口配置模式,

 

此外局部配置模式有很多种,可根据不同需求进入vlan配置模式、端口聚合配置模式等,可输入?,查看当前模式下,能执行哪些命令;

 

输入quit返回上一层配置模式,输入commit提交已有配置,用户模式下输入save保存配置;

 

 

查看设备信息
<HUAWEI>display version

 

其中关键信息有:

软件版本:Version 8.130 (S6800 V800R013C00SPC560B560)

设备型号:HUAWEI S6800

运行时间:0 day, 0 hour, 15 minutes

 

查看和修改系统时间
<HUAWEI>display clock

<HUAWEI>clock datetime 12:00:00 2018-01-01

 

 

修改设备名称
<HUAWEI>system-view

[~HUAWEI]sysname CE6800

如果没有commit,需退出一次系统视图模式后保存;

 

 

 配置设备说明信息

添加登录设备说明内容,举例:Only the administrator can configure the equipment

[*CE6800]header shell information "Only the administrator can configure the equipment!"

 

退出视图模式后可见

 

 

配置console登录认证方式及超时时间
Console登录:默认console登录无密码,任何人通过串口线直连设备console接口,可直接修改配置,管理员可配置console密码,登录不需要用户名,初次配置时使用console;

 

超时时间:指连接设备后,一段时间内无操作,系统自动退出,需重新登录,默认超时时间为10min;

 

进入console配置模式

[*CE6800]user-interface console 0

 

Console认证方式为password

[*CE6800-ui-console0]authentication-mode password

 

设置console密码为密文形式huawei@123

[*CE6800-ui-console0]set authentication password cipher huawei@123

 

设置超时时间为20min

[*CE6800-ui-console0]idle-timeout 20 0

 

使用quit返回视图模式,保存后使用display this检查配置结果,乱码是加密后的密码;

 

 

Telnet 配置
配置密文登录验证
进入vty配置模式,0 4表示允许5个并发telnet连接

[~CE6800]user-interface vty 0 4

 

指定认证方式为password,出现要求使用aaa认证提示信息,暂时忽略

[~CE6800-ui-vty0-4]authentication-mode password

 

 

配置telnet使用密文认证,密码Gauss_234

[*CE6800-ui-vty0-4]set authentication password cipher Gauss_234

 

配置用户等级3,缺省为级别1

[*CE6800-ui-vty0-4]user privilege level 3

 

退出保存后,使用display this查看配置

 

 

用户等级说明

LEVEL 0(访问级):可以执行用于网络诊断等功能的命令。包括ping、tracert、telnet等命令,执行该级别命令的结果不能被保存到配置文件中。
LEVEL 1(监控级):可以执行用于系统维护、业务故障诊断等功能的命令。包括debugging、terminal等命令,执行该级别命令的结果不能被保存到配置文件中。
LEVEL 2(系统级):可以执行用于业务配置的命令,主要包括路由等网络层次的命令,用于向用户提供网络服务。
LEVEL 3(管理级):最高级,可以运行所有命令:关系到系统的基本运行、系统支撑模块功能的命令,这些命令对业务提供支撑作用。包括文件系统、FTP、TFTP、XModem下载、用户管理命令、级别设置命令等。

 

注:某些型号设备用户等级有0-15级,区分更细,其中15级与LEVEL 3权限一致,配置时需依据具体情况而定。

 
配置aaa登录认证
aaa认证

authentication(认证)、authorization(授权)、accounting(计费)的简称,是网络安全的一种管理机制;Authentication是本地认证/授权,authorization和accounting是由远处radius(远程拨号认证系统)服务或hwtacacs(华为终端访问控制系统)服务器完成认证/授权;

 

进入vty配置模式

[~CE6800]user-interface vty 0 4

 

退出vty配置模式后,进入aaa配置模式

[*CE6800]aaa

 

配置本地用户huawei密码为密文Gauss_234

[*CE6800-aaa]local-user huawei password cipher Gauss_234

㈣ 关于如何实现FTP上传或者下载带进度和速率的实现方法

在这里需要说明的是,该方式是通过其他代码进行改进的。 首先我们需要定义一个委托,用来实现传输过程中传递文件的总数,已完成的字节数和速度,方便客户端界面上调用。 public delegate void TransferProcess(long total,long finished,double speed); 调用代码就不举例了 接下来我们建立一个FTPClient类,该类基于socket和FTP协议实现了连接FTP服务,建立目录,上传文件,下载文件等主要方法。结构如下: 需要注意的是,我们需要定一个事件event TransferProcess OnTransferProcess;该事件在实例化FTPClient之后需要调用,这个事件对实现进度条和速率是非常重要的。为了实现速率我们还需要定义个公开的成员startTime(开始时间)。我们现在主要是看一下如何上传的。 /// /// 上传一个文件 /// /// 本地文件名 public void Put(string strFileName) { //连接服务器 if (!bConnected) { Connect(); } UpdateStatus = true; //建立socket连接 Socket socketData = CreateDataSocket(); //向FTP服务器发生存储命令 SendCommand("STOR " + Path.GetFileName(strFileName)); //如何服务器返回的信息不是我们所需要的,就抛出异常 if (!(iReplyCode == 125 || iReplyCode == 150)) { throw new IOException(strReply.Substring(4)); } //建立本地文件的数据流 FileStream input = new FileStream(strFileName, FileMode.Open); int iBytes = 0; long total = input.Length;//该成员主要记录文件的总字节数,注意这里使用长整型,是为了突破只能传输2G左右的文件的限制 long finished = 0;//该成员主要记录已经传输完成的字节数,注意这里使用长整型,是为了突破只能传输2G左右的文件的限制 double speed = 0;//记录传输的速率 while ((iBytes = input.Read(buffer, 0, buffer.Length)) > 0)//循环从本地数据流中读取数据到缓冲区 { //Console.WriteLine(startTime.ToString()); socketData.Send(buffer, iBytes, 0);//将缓冲区的数据发送到FTP服务器 DateTime endTime = DateTime.Now;//每次发送数据的结束时间 TimeSpan ts = endTime - startTime;//计算每次发送数据的时间间隔 finished += iBytes;//计算完成的字节数. Console.WriteLine(ts.Milliseconds); //计算速率,注意finished是字节,所以需要换算冲K字节 if (ts.Milliseconds > 0) { speed = (double)(finished / ts.TotalMilliseconds); speed = Math.Round(speed * 1000 / 1024, 2); } //这里是必不可少的,否则你无法实现进度条 //如果传输进度事件被实例化,而且从本地数据流中读取数据不是空的并完成的字节数也不为空的话,则实现委托. if (OnTransferProcess != null&&iBytes>0&&finished>0) { OnTransferProcess(total, finished,speed); } } UpdateStatus = false; finished = 0; input.Close();//当传输完成之后需要关闭数据流,以便下次访问. if (socketData.Connected) { socketData.Close();//关闭当前的socket } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { UpdateStatus = false; throw new IOException(strReply.Substring(4)); } } } 上面代码中注释写得比较详细,这里就不再一一讲解了,关于下载中实现进度条和速率的问题可以参考以上代码进行修改. 完整的代码如下: using System; using System.net; using System.IO; using System.Text; using System.net.Sockets; namespace MMSEncoder { public delegate void TransferProcess(long total,long finished,double speed); /// /// FTP Client /// public class FTPClient { public event TransferProcess OnTransferProcess; public bool UpdateStatus = true; public DateTime startTime; private bool IsAbortConnect = false; #region 构造函数 /// /// 缺省构造函数 /// public FTPClient() { strRemoteHost = ""; strRemotePath = ""; strRemoteUser = ""; strRemotePass = ""; strRemotePort = 21; bConnected = false; } /// /// 构造函数 /// /// FTP服务器IP地址 /// 当前服务器目录 /// 登录用户账号 /// 登录用户密码 /// FTP服务器端口 public FTPClient(string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort) { strRemoteHost = remoteHost; strRemotePath = remotePath; strRemoteUser = remoteUser; strRemotePass = remotePass; strRemotePort = remotePort; Connect(); } #endregion #region 登陆字段、属性 /// /// FTP服务器IP地址 /// private string strRemoteHost; public string RemoteHost { get { return strRemoteHost; } set { strRemoteHost = value; } } /// /// FTP服务器端口 /// private int strRemotePort; public int RemotePort { get { return strRemotePort; } set { strRemotePort = value; } } /// /// 当前服务器目录 /// private string strRemotePath; public string RemotePath { get { return strRemotePath; } set { strRemotePath = value; } } /// /// 登录用户账号 /// private string strRemoteUser; public string RemoteUser { set { strRemoteUser = value; } } /// /// 用户登录密码 /// private string strRemotePass; public string RemotePass { set { strRemotePass = value; } } /// /// 是否登录 /// private Boolean bConnected; public bool Connected { get { return bConnected; } } #endregion #region 链接 /// /// 建立连接 /// public void Connect() { //if (IsAbortConnect) throw new IOException("用户强制终止了FTP"); socketControl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort); // 链接 try { socketControl.Connect(ep); } catch (Exception) { throw new IOException("无法连接到远程服务器!"); } // 获取应答码 ReadReply(); if (iReplyCode != 220) { DisConnect(); throw new IOException(strReply.Substring(4)); } // 登陆 SendCommand("USER " + strRemoteUser); if (!(iReplyCode == 331 || iReplyCode == 230)) { CloseSocketConnect();//关闭连接 throw new IOException(strReply.Substring(4)); } if (iReplyCode != 230) { SendCommand("PASS " + strRemotePass); if (!(iReplyCode == 230 || iReplyCode == 202)) { CloseSocketConnect();//关闭连接 throw new IOException(strReply.Substring(4)); } } bConnected = true; // 切换到初始目录 if (!string.IsNullOrEmpty(strRemotePath)) { ChDir(strRemotePath); } } /// /// 关闭连接 /// public void DisConnect() { if (socketControl != null) { SendCommand("QUIT"); } CloseSocketConnect(); } public void AbortConnect() { if (socketControl != null) { SendCommand("ABOR"); } IsAbortConnect = true; //CloseSocketConnect(); } #endregion #region 传输模式 /// /// 传输模式:二进制类型、ASCII类型 /// public enum TransferType { Binary, ASCII }; /// /// 设置传输模式 /// /// 传输模式 public void SetTransferType(TransferType ttType) { if (ttType == TransferType.Binary) { SendCommand("TYPE I");//binary类型传输 } else { SendCommand("TYPE A");//ASCII类型传输 } if (iReplyCode != 200) { throw new IOException(strReply.Substring(4)); } else { trType = ttType; } } /// /// 获得传输模式 /// /// 传输模式 public TransferType GetTransferType() { return trType; } #endregion #region 文件操作 /// /// 获得文件列表 /// /// 文件名的匹配字符串 /// public string[] Dir(string strMask) { // 建立链接 if (!bConnected) { Connect(); } //建立进行数据连接的socket Socket socketData = CreateDataSocket(); //传送命令 SendCommand("NLST " + strMask); //分析应答代码 if (!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226)) { throw new IOException(strReply.Substring(4)); } //获得结果 strMsg = ""; while (true) { int iBytes = socketData.Receive(buffer, buffer.Length, 0); strMsg += GB2312.GetString(buffer, 0, iBytes); if (iBytes < buffer.Length) { break; } } char[] seperator = { '
' }; string[] strsFileList = strMsg.Split(seperator); socketData.Close();//数据socket关闭时也会有返回码 if (iReplyCode != 226) { ReadReply(); if (iReplyCode != 226) { throw new IOException(strReply.Substring(4)); } } return strsFileList; } /// /// 获取文件大小 /// /// 文件名 /// 文件大小 public long GetFileSize(string strFileName) { if (!bConnected) { Connect(); } SendCommand("SIZE " + Path.GetFileName(strFileName)); long lSize = 0; if (iReplyCode == 213) { lSize = Int64.Parse(strReply.Substring(4)); } else { throw new IOException(strReply.Substring(4)); } return lSize; } /// /// 删除 /// /// 待删除文件名 public void Delete(string strFileName) { if (!bConnected) { Connect(); } SendCommand("DELE " + strFileName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } /// /// 重命名(如果新文件名与已有文件重名,将覆盖已有文件) /// /// 旧文件名 /// 新文件名 public void Rename(string strOldFileName, string strNewFileName) { if (!bConnected) { Connect(); } SendCommand("RNFR " + strOldFileName); if (iReplyCode != 350) { throw new IOException(strReply.Substring(4)); } // 如果新文件名与原有文件重名,将覆盖原有文件 SendCommand("RNTO " + strNewFileName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } #endregion #region 上传和下载 /// /// 下载一批文件 /// /// 文件名的匹配字符串 /// 本地目录(不得以\结束) public void Get(string strFileNameMask, string strFolder) { if (!bConnected) { Connect(); } string[] strFiles = Dir(strFileNameMask); foreach (string strFile in strFiles) { if (!strFile.Equals(""))//一般来说strFiles的最后一个元素可能是空字符串 { if (strFile.LastIndexOf(".") > -1) { Get(strFile.Replace("\r", ""), strFolder, strFile.Replace("\r", "")); } } } } /// /// 下载一个文件 /// /// 要下载的文件名 /// 本地目录(不得以\结束) /// 保存在本地时的文件名 public void Get(string strRemoteFileName, string strFolder, string strLocalFileName) { if (!bConnected) { Connect(); } SetTransferType(TransferType.Binary); if (strLocalFileName.Equals("")) { strLocalFileName = strRemoteFileName; } if (!File.Exists(strLocalFileName)) { Stream st = File.Create(strLocalFileName); st.Close(); } FileStream output = new FileStream(strFolder + "\\" + strLocalFileName, FileMode.Create); Socket socketData = CreateDataSocket(); SendCommand("RETR " + strRemoteFileName); if (!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226 || iReplyCode == 250)) { throw new IOException(strReply.Substring(4)); } while (true) { int iBytes = socketData.Receive(buffer, buffer.Length, 0); output.Write(buffer, 0, iBytes); if (iBytes <= 0) { break; } } output.Close(); if (socketData.Connected) { socketData.Close(); } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { throw new IOException(strReply.Substring(4)); } } } /// /// 上传一批文件 /// /// 本地目录(不得以\结束) /// 文件名匹配字符(可以包含*和?) public void Put(string strFolder, string strFileNameMask) { string[] strFiles = Directory.GetFiles(strFolder, strFileNameMask); foreach (string strFile in strFiles) { //strFile是完整的文件名(包含路径) Put(strFile); } } /// /// 上传一个文件 /// /// 本地文件名 public void Put(string strFileName) { if (!bConnected) { Connect(); } UpdateStatus = true; Socket socketData = CreateDataSocket(); SendCommand("STOR " + Path.GetFileName(strFileName)); if (!(iReplyCode == 125 || iReplyCode == 150)) { throw new IOException(strReply.Substring(4)); } FileStream input = new FileStream(strFileName, FileMode.Open); int iBytes = 0; long total = input.Length; long finished = 0; //DateTime startTime = DateTime.Now; double speed = 0; while ((iBytes = input.Read(buffer, 0, buffer.Length)) > 0) { Console.WriteLine(startTime.ToString()); socketData.Send(buffer, iBytes, 0); DateTime endTime = DateTime.Now; TimeSpan ts = endTime - startTime; finished += iBytes; Console.WriteLine(ts.Milliseconds); if (ts.Milliseconds > 0) { speed = (double)(finished / ts.TotalMilliseconds); speed = Math.Round(speed * 1000 / 1024, 2); } if (OnTransferProcess != null&&iBytes>0&&finished>0) { OnTransferProcess(total, finished,speed); } } UpdateStatus = false; finished = 0; input.Close(); if (socketData.Connected) { socketData.Close(); } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { UpdateStatus = false; throw new IOException(strReply.Substring(4)); } } } #endregion #region 目录操作 /// /// 创建目录 /// /// 目录名 public void MkDir(string strDirName) { if (!bConnected) { Connect(); } SendCommand("MKD " + strDirName); if (iReplyCode != 257) { throw new IOException(strReply.Substring(4)); } } /// /// 删除目录 /// /// 目录名 public void RmDir(string strDirName) { if (!bConnected) { Connect(); } SendCommand("RMD " + strDirName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } /// /// 改变目录 /// /// 新的工作目录名 public void ChDir(string strDirName) { if (strDirName.Equals(".") || strDirName.Equals("")) { return; } if (!bConnected) { Connect(); } SendCommand("CWD " + strDirName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } this.strRemotePath = strDirName; } #endregion #region 内部变量 /// /// 服务器返回的应答信息(包含应答码) /// private string strMsg; /// /// 服务器返回的应答信息(包含应答码) /// private string strReply; /// /// 服务器返回的应答码 /// private int iReplyCode; /// /// 进行控制连接的socket /// private Socket socketControl; /// /// 传输模式 /// private TransferType trType; /// /// 接收和发送数据的缓冲区 /// private static int BLOCK_SIZE = Int16.MaxValue; Byte[] buffer = new Byte[BLOCK_SIZE]; /// /// 编码方式(为防止出现中文乱码采用 GB2312编码方式) /// Encoding GB2312 = Encoding.Default ;//Encoding.GetEncoding("gb2312"); #endregion #region 内部函数 /// /// 将一行应答字符串记录在strReply和strMsg /// 应答码记录在iReplyCode /// private void ReadReply() { strMsg = ""; strReply = ReadLine(); iReplyCode = Int32.Parse(strReply.Substring(0, 3)); } /// /// 建立进行数据连接的socket /// /// 数据连接socket private Socket CreateDataSocket() { SendCommand("PASV"); if (iReplyCode != 227) { throw new IOException(strReply.Substring(4)); } int index1 = strReply.IndexOf('('); int index2 = strReply.IndexOf(')'); string ipData = strReply.Substring(index1 + 1, index2 - index1 - 1); int[] parts = new int[6]; int len = ipData.Length; int partCount = 0; string buf = ""; for (int i = 0; i < len && partCount <= 6; i++) { char ch = Char.Parse(ipData.Substring(i, 1)); if (Char.IsDigit(ch)) buf += ch; else if (ch != ',') { throw new IOException("Malformed PASV strReply: " + strReply); } if (ch == ',' || i + 1 == len) { try { parts[partCount++] = Int32.Parse(buf); buf = ""; } catch (Exception) { throw new IOException("Malformed PASV strReply: " + strReply); } } } string ipAddress = parts[0] + "." + parts[1] + "." + parts[2] + "." + parts[3]; int port = (parts[4] << 8) + parts[5]; Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ipAddress), port); try { s.Connect(ep); } catch (Exception) { throw new IOException("无法连接服务器"); } return s; } /// /// 关闭socket连接(用于登录以前) /// private void CloseSocketConnect() { if (socketControl != null) { socketControl.Close(); socketControl = null; } bConnected = false; } /// /// 读取Socket返回的所有字符串 /// /// 包含应答码的字符串行 private string ReadLine() { while (true) { int iBytes = socketControl.Receive(buffer, buffer.Length, 0); strMsg += GB2312.GetString(buffer, 0, iBytes); if (iBytes < buffer.Length) { break; } } char[] seperator = { '
' }; string[] mess = strMsg.Split(seperator); if (strMsg.Length > 2) { strMsg = mess[mess.Length - 2]; //seperator[0]是10,换行符是由13和0组成的,分隔后10后面虽没有字符串, //但也会分配为空字符串给后面(也是最后一个)字符串数组, //所以最后一个mess是没用的空字符串 //但为什么不直接取mess[0],因为只有最后一行字符串应答码与信息之间有空格 } else { strMsg = mess[0]; } if (!strMsg.Substring(3, 1).Equals(" "))//返回字符串正确的是以应答码(如220开头,后面接一空格,再接问候字符串) { return ReadLine(); } return strMsg; } /// /// 发送命令并获取应答码和最后一行应答字符串 /// /// 命令 private void SendCommand(String strCommand) { Byte[] cmdBytes = GB2312.GetBytes((strCommand + "\r
").ToCharArray()); socketControl.Send(cmdBytes, cmdBytes.Length, 0); ReadReply(); } #endregion } }

㈤ 电脑ftp上传文件到交换机

交换机备份文件到电脑,或者通过电脑升级交换机系统,使用tftp方式即可,打开tftp工具,指定一下tftp根目录,打开crt 插上console线,进入交换机终端全局配置模式下,使用 tftp +命令的方式 ,来实现文件传输。
ftp一般适合传输大型文件,对于安全系数较高的环境下。

㈥ c# ftp上传方式把文件上传到指定服务器!

/// <summary>
/// 上传文件到FTP服务器
/// </summary>
/// <param name="ftpServerIp">FTP访问地址</param>
/// <param name="userName">用户名</param>
/// <param name="userPass">密码</param>
/// <param name="strPath">地址</param>
/// <returns></returns>
public static bool UpLoadFileFtp(string ftpServerIp, string userName, string userPass, string filePath, string strPath)
{
bool res =false;
string ftpUrl = CommConst.ftpName;
string uri = string.Empty;
if (!string.IsNullOrEmpty(strPath))
{
FileInfo file = new FileInfo(strPath);
if (!file.Exists)
{
res = false;
}
else
{

uri = ftpUrl + ftpServerIp + file.Name;
FtpWebRequest reqFtp=(FtpWebRequest)WebRequest.Create(new Uri(uri));

DealFile(ftpServerIp, userName, userPass);//查看服务器上是否存在指定文件夹

reqFtp.Credentials = new NetworkCredential(userName, userPass);
reqFtp.KeepAlive = false;
reqFtp.Method = WebRequestMethods.Ftp.UploadFile;
reqFtp.UseBinary = true;
reqFtp.ContentLength = file.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
FileStream fs = file.OpenRead();
try
{
Stream strm = reqFtp.GetRequestStream();
contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0)
{
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}

strm.Close();
fs.Close();
res = true;
}
catch (Exception ex)
{
Console.Write(ex.Message);
return false;
}
}
}
return res;
}
/// <summary>
/// 处理上传文件的路径,如果不存在,新建
/// </summary>
public static void DealFile(string ftpServerIp, string userName, string userPass)
{
string[] Paths = ftpServerIp.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
string realftpURL = CommConst.ftpName + Paths[0];//需要查询的ftp路径
if (Paths!=null && Paths.Length >= 2)
{
string fileName = "";
for (int i = 0; i < Paths.Length - 1; i++)
{
if (i != 0)
{
fileName = Paths[i] + CommConst.bevelSign + Paths[i + 1];
}
else
{
fileName = Paths[i + 1];
}

if (!fileIsexit(realftpURL, userName, userPass, fileName))//如果文件夹不存在
{
// realftpURL += CommConst.bevelSign + Paths[i + 1];
CreateFile(realftpURL, userName, userPass,Paths[i+1]);
}
realftpURL += CommConst.bevelSign + Paths[i + 1];
}
}

}

㈦ 华为路由器如何清除进入console配置口的密码

1、首先打开下载好的串口线驱动程序安装包文件夹,双击“hypertrm”安装程序。

㈧ 思科 501 防火墙的配置问题

硬件防火墙,是网络间的墙,防止非法侵入,过滤信息等,从结构上讲,简单地说是一种PC式的电脑主机加上闪存(Flash)和防火墙操作系统。它的硬件跟共控机差不多,都是属于能适合24小时工作的,外观造型也是相类似。闪存基本上跟路由器一样,都是那中EEPROM,操作系统跟Cisco IOS相似,都是命令行(Command)式。

我第一次亲手那到的防火墙是Cisco Firewall Pix 525,是一种机架式标准(即能安装在标准的机柜里),有2U的高度,正面看跟Cisco 路由器一样,只有一些指示灯,从背板看,有两个以太口(RJ-45网卡),一个配置口(console),2个USB,一个15针的Failover口,还有三个PCI扩展口。

如何开始Cisco Firewall Pix呢?我想应该是跟Cisco 路由器使用差不多吧,于是用配置线从电脑的COM2连到PIX 525的console口,进入PIX操作系统采用windows系统里的“超级终端”,通讯参数设置为默然。初始使用有一个初始化过程,主要设置:Date(日期)、time(时间)、hostname(主机名称)、inside ip address(内部网卡IP地址)、domain(主域)等,如果以上设置正确,就能保存以上设置,也就建立了一个初始化设置了。

进入Pix 525采用超级用户(enable),默然密码为空,修改密码用passwd 命令。一般情况下Firewall配置,我们需要做些什么呢?当时第一次接触我也不知道该做些什么,随设备一起来的有《硬件的安装》和《命令使用手册》。我首先看了命令的使用,用于几个小时把几百面的英文书看完了,对命令的使用的知道了一点了,但是对如何配置PIX还是不大清楚该从何入手,我想现在只能去找cisco了,于是在www.cisco.com下载了一些资料,边看边实践了PIX。

防火墙是处网络系统里,因此它跟网络的结构密切相关,一般会涉及的有Route(路由器)、网络IP地址。还有必须清楚标准的TCP[RFC793]和UDP[RFC768]端口的定义。

下面我讲一下一般用到的最基本配置

1、 建立用户和修改密码

跟Cisco IOS路由器基本一样。

2、 激活以太端口

必须用enable进入,然后进入configure模式

PIX525>enable

Password:

PIX525#config t

PIX525(config)#interface ethernet0 auto

PIX525(config)#interface ethernet1 auto

在默然情况下ethernet0是属外部网卡outside, ethernet1是属内部网卡inside, inside在初始化配置成功的情况下已经被激活生效了,但是outside必须命令配置激活。

3、 命名端口与安全级别

采用命令nameif

PIX525(config)#nameif ethernet0 outside security0

PIX525(config)#nameif ethernet0 outside security100

security0是外部端口outside的安全级别(0安全级别最高)

security100是内部端口inside的安全级别,如果中间还有以太口,则security10,security20等等命名,多个网卡组成多个网络,一般情况下增加一个以太口作为DMZ(Demilitarized Zones非武装区域)。

4、 配置以太端口IP 地址

采用命令为:ip address

如:内部网络为:192.168.1.0 255.255.255.0

外部网络为:222.20.16.0 255.255.255.0

PIX525(config)#ip address inside 192.168.1.1 255.255.255.0

PIX525(config)#ip address outside 222.20.16.1 255.255.255.0

5、 配置远程访问[telnet]

在默然情况下,PIX的以太端口是不允许telnet的,这一点与路由器有区别。Inside端口可以做telnet就能用了,但outside端口还跟一些安全配置有关。

PIX525(config)#telnet 192.168.1.1 255.255.255.0 inside

PIX525(config)#telnet 222.20.16.1 255.255.255.0 outside

测试telnet

在[开始]->[运行]

telnet 192.168.1.1

PIX passwd:

输入密码:cisco

6、 访问列表(access-list)

此功能与Cisco IOS基本上是相似的,也是Firewall的主要部分,有permit和deny两个功能,网络协议一般有IP|TCP|UDP|ICMP等等,如:只允许访问主机:222.20.16.254的www,端口为:80

PIX525(config)#access-list 100 permit ip any host 222.20.16.254 eq www

PIX525(config)#access-list 100 deny ip any any

PIX525(config)#access-group 100 in interface outside

7、 地址转换(NAT)和端口转换(PAT)

NAT跟路由器基本是一样的,

首先必须定义IP Pool,提供给内部IP地址转换的地址段,接着定义内部网段。

PIX525(config)#global (outside) 1 222.20.16.100-222.20.16.200 netmask 255.255.255.0

PIX525(config)#nat (outside) 1 192.168.0.0 255.255.255.0

如果是内部全部地址都可以转换出去则:

PIX525(config)#nat (outside) 1 0.0.0.0 0.0.0.0

则某些情况下,外部地址是很有限的,有些主机必须单独占用一个IP地址,必须解决的是公用一个外部IP(222.20.16.201),则必须多配置一条命令,这种称为(PAT),这样就能解决更多用户同时共享一个IP,有点像代理服务器一样的功能。配置如下:

PIX525(config)#global (outside) 1 222.20.16.100-222.20.16.200 netmask 255.255.255.0

PIX525(config)#global (outside) 1 222.20.16.201 netmask 255.255.255.0

PIX525(config)#nat (outside) 1 0.0.0.0 0.0.0.0

8、 DHCP Server

在内部网络,为了维护的集中管理和充分利用有限IP地址,都会启用动态主机分配IP地址服务器(DHCP Server),Cisco Firewall PIX都具有这种功能,下面简单配置DHCP Server,地址段为192.168.1.100—192.168.168.1.200

DNS: 主202.96.128.68 备202.96.144.47

主域名称:abc.com.cn

DHCP Client 通过PIX Firewall

PIX525(config)#ip address dhcp

DHCP Server配置

PIX525(config)#dhcpd address 192.168.1.100-192.168.1.200 inside

PIX525(config)#dhcp dns 202.96.128.68 202.96.144.47

PIX525(config)#dhcp domain abc.com.cn

9、 静态端口重定向(Port Redirection with Statics)

在PIX 版本6.0以上,增加了端口重定向的功能,允许外部用户通过一个特殊的IP地址/端口通过Firewall PIX 传输到内部指定的内部服务器。这种功能也就是可以发布内部WWW、FTP、Mail等服务器了,这种方式并不是直接连接,而是通过端口重定向,使得内部服务器很安全。

命令格式:

static [(internal_if_name,external_if_name)]{global_ip|interface} local_ip

[netmask mask][max_cons[max_cons[emb_limit[norandomseq]]]

static [(internal_if_name,external_if_name)]{tcp|udp}{global_ip|interface} local_ip

[netmask mask][max_cons[max_cons[emb_limit[norandomseq]]]

!----外部用户直接访问地址222.20.16.99 telnet端口,通过PIX重定向到内部主机192.168.1.99的telnet端口(23)。

PIX525(config)#static (inside,outside) tcp 222.20.16.99 telnet 192.168.1.99 telnet netmask 255.255.255.255 0 0

!----外部用户直接访问地址222.20.16.99 FTP,通过PIX重定向到内部192.168.1.3的FTP Server。

PIX525(config)#static (inside,outside) tcp 222.20.16.99 ftp 192.168.1.3 ftp netmask 255.255.255.255 0 0

!----外部用户直接访问地址222.20.16.208 www(即80端口),通过PIX重定向到内部192.168.123的主机的www(即80端口)。

PIX525(config)#static (inside,outside) tcp 222.20.16.208 www 192.168.1.2 www netmask 255.255.255.255 0 0

!----外部用户直接访问地址222.20.16.201 HTTP(8080端口),通过PIX重定向到内部192.168.1.4的主机的www(即80端口)。

PIX525(config)#static (inside,outside) tcp 222.20.16.208 8080 192.168.1.4 www netmask 255.255.255.255 0 0

!----外部用户直接访问地址222.20.16.5 smtp(25端口),通过PIX重定向到内部192.168.1.5的邮件主机的smtp(即25端口)

PIX525(config)#static (inside,outside) tcp 222.20.16.208 smtp 192.168.1.4 smtp netmask 255.255.255.255 0 0

10、显示与保存结果

采用命令show config

保存采用write memory

今天我们来介绍pix防火墙的一些高级配置。

配置静态IP地址翻译(static):

如果从外网发起一个会话,会话的目的地址是一个内网的ip地址,static就把内部地址翻译成一个指定的全局地址,允许这个会话建立。

static命令配置语法:static (internal_if_name,external_if_name) outside_ip_address inside_ ip_address,其中internal_if_name表示内部网络接口,安全级别较高。如inside.。external_if_name为外部网络接口,安全级别较低,如outside等。

outside_ip_address为正在访问的较低安全级别的接口上的ip地址。inside_ ip_address为内部网络的本地ip地址。 示例语句如下:

Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.8

ip地址为192.168.0.8的主机,对于通过pix防火墙建立的每个会话,都被翻译成61.144.51.62这个全局地址,也可以理解成 static命令创建了内部ip地址192.168.0.8和外部ip地址61.144.51.62之间的静态映射。PIX将把192.168.0.8映射为61.144.51.62以便NAT更好的工作。

小提示:

使用static命令可以让我们为一个特定的内部ip地址设置一个永久的全局ip地址。这样就能够为具有较低安全级别的指定接口创建一个入口,使它们可以进入到具有较高安全级别的指定接口。
管道命令(conit):

使用static命令可以在一个本地ip地址和一个全局ip地址之间创建了一个静态映射,但从外部到内部接口的连接仍然会被pix防火墙的自适应安全算法 (ASA)阻挡,conit命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口,例如允许从外部到DMZ或内部接口的入方向的会话。

对于向内部接口的连接,static和conit命令将一起使用,来指定会话的建立。说得通俗一点管道命令(conit)就相当于以往CISCO设备的访问控制列表(ACL)。

conit命令配置语法:

conit permit|deny global_ip port[-port] protocol foreign_ip [netmask],其中permit|deny为允许|拒绝访问,global_ip指的是先前由global或static命令定义的全局ip地址,如果global_ip为0,就用any代替0;如果global_ip是一台主机,就用host命令参数。

port指的是服务所作用的端口,例如www使用80,smtp使用25等等,我们可以通过服务名称或端口数字来指定端口。protocol指的是连接协议,比如:TCP、UDP、ICMP等。foreign_ip表示可访问global_ip的外部ip。对于任意主机可以用any表示。如果 foreign_ip是一台主机,就用host命令参数。示例语句如下:

Pix525(config)#conit permit tcp host 192.168.0.8 eq www any

表示允许任何外部主机对全局地址192.168.0.8的这台主机进行http访问。其中使用eq和一个端口来允许或拒绝对这个端口的访问。Eq ftp就是指允许或拒绝只对ftp的访问。

Pix525(config)#conit deny tcp any eq ftp host 61.144.51.89

设置不允许外部主机61.144.51.89对任何全局地址进行ftp访问。

Pix525(config)#conit permit icmp any any

设置允许icmp消息向内部和外部通过。

Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.3 Pix525(config)#conit permit tcp host 61.144.51.62 eq www any

这两句是将static和conit语句结合而生效的,192.168.0.3在内网是一台web服务器,现在希望外网的用户能够通过pix防火墙得到web服务。所以先做static静态映射把内部IP192.168.0.3转换为全局IP61.144.51.62,然后利用conit命令允许任何外部主机对全局地址61.144.51.62进行http访问。

小提示:

对于上面的情况不使用conit语句设置容许访问规则是不可以的,因为默认情况下PIX不容许数据包主动从低安全级别的端口流向高安全级别的端口。

配置fixup协议:

fixup命令作用是启用,禁止,改变一个服务或协议通过pix防火墙,由fixup命令指定的端口是pix防火墙要侦听的服务。示例例子如下:

Pix525(config)#fixup protocol ftp 21

启用ftp协议,并指定ftp的端口号为21

Pix525(config)#fixup protocol http 80
Pix525(config)#fixup protocol http 1080

为http协议指定80和1080两个端口。

Pix525(config)#no fixup protocol smtp 80

禁用smtp协议。
设置telnet:

在pix5.0之前只能从内部网络上的主机通过telnet访问pix。在pix 5.0及后续版本中,可以在所有的接口上启用telnet到pix的访问。当从外部接口要telnet到pix防火墙时,telnet数据流需要用 ipsec提供保护,也就是说用户必须配置pix来建立一条到另外一台pix,路由器或vpn客户端的ipsec隧道。另外就是在PIX上配置SSH,然后用SSH client从外部telnet到PIX防火墙。

我们可以使用telnet语句管理登录PIX的权限,telnet配置语法:telnet local_ip [netmask] local_ip 表示被授权通过telnet访问到pix的ip地址。如果不设此项,pix的配置方式只能由console进行。也就是说默认情况下只有通过 console口才能配置PIX防火墙。

小提示:

由于管理PIX具有一定的危险性,需要的安全级别非常高,所以不建议大家开放提供外网IP的telnet管理PIX的功能。如果实际情况一定要通过外网IP管理PIX则使用SSH加密手段来完成。

㈨ 华为s3328tp-si(ac)这款交换机有CONSOLE口吗 支持BOOTP、TFTP(或FTP)、TELNET吗

肯定有的,这是款三层交换机,都是命令行调试。
这三种都是支持的。

㈩ VB.net连接FTP操作

MSDN上的,看看对你有没有帮助。GOOD LUCK!

Imports System.Net
Imports System.IO

Mole FtpSample

Sub Main(ByVal args() As String)
If args.Length = 0 OrElse args(0).Equals("/?") Then
DisplayUsage()
ElseIf args.Length = 1 Then
Download(args(0))
ElseIf args.Length = 2 Then
If args(0).Equals("/list") Then
List(args(1))
Else
Upload(args(0), args(1))
End If
Else
Console.WriteLine("Unrecognized argument.")
End If
End Sub

Private Sub DisplayUsage()
Console.WriteLine("USAGE:")
Console.WriteLine(" FtpSample [/? | <FTP download URL> | <local file>")
Console.WriteLine(" <FTP upload URL> | /list <FTP list URL>]")
Console.WriteLine()
Console.WriteLine("where")
Console.WriteLine(" FTP download URL URL of a file to download from an FTP server.")
Console.WriteLine(" FTP upload URL Location on a FTP server to upload a file to.")
Console.WriteLine(" FTP list URL Location on a FTP server to list the contents of.")
Console.WriteLine(" local file A local file to upload to an FTP server.")
Console.WriteLine()
Console.WriteLine(" Options:")
Console.WriteLine(" /? Display this help message.")
Console.WriteLine(" /list Specifies the list command.")
Console.WriteLine()
Console.WriteLine("EXAMPLES:")
Console.WriteLine(" Download a file FtpSample ftp://myserver/download.txt")
Console.WriteLine(" Upload a file FtpSample upload.txt ftp://myserver/upload.txt")
End Sub

Private Sub Download(ByVal downloadUrl As String)
Dim responseStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim reader As StreamReader = Nothing
Try
Dim downloadRequest As FtpWebRequest = _
WebRequest.Create(downloadUrl)
Dim downloadResponse As FtpWebResponse = _
downloadRequest.GetResponse()
responseStream = downloadResponse.GetResponseStream()

Dim fileName As String = _
Path.GetFileName(downloadRequest.RequestUri.AbsolutePath)

If fileName.Length = 0 Then
reader = New StreamReader(responseStream)
Console.WriteLine(reader.ReadToEnd())
Else
fileStream = File.Create(fileName)
Dim buffer(1024) As Byte
Dim bytesRead As Integer
While True
bytesRead = responseStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
fileStream.Write(buffer, 0, bytesRead)
End While
End If
Console.WriteLine("Download complete.")
Catch ex As UriFormatException
Console.WriteLine(ex.Message)
Catch ex As WebException
Console.WriteLine(ex.Message)
Catch ex As IOException
Console.WriteLine(ex.Message)
Finally
If reader IsNot Nothing Then
reader.Close()
ElseIf responseStream IsNot Nothing Then
responseStream.Close()
End If
If fileStream IsNot Nothing Then
fileStream.Close()
End If
End Try
End Sub

Private Sub Upload(ByVal fileName As String, ByVal uploadUrl As String)
Dim requestStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim uploadResponse As FtpWebResponse = Nothing
Try
Dim uploadRequest As FtpWebRequest = WebRequest.Create(uploadUrl)
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile

' UploadFile is not supported through an Http proxy
' so we disable the proxy for this request.
uploadRequest.Proxy = Nothing

requestStream = uploadRequest.GetRequestStream()
fileStream = File.Open(fileName, FileMode.Open)

Dim buffer(1024) As Byte
Dim bytesRead As Integer
While True
bytesRead = fileStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
requestStream.Write(buffer, 0, bytesRead)
End While

' The request stream must be closed before getting the response.
requestStream.Close()

uploadResponse = uploadRequest.GetResponse()
Console.WriteLine("Upload complete.")
Catch ex As UriFormatException
Console.WriteLine(ex.Message)
Catch ex As IOException
Console.WriteLine(ex.Message)
Catch ex As WebException
Console.WriteLine(ex.Message)
Finally
If uploadResponse IsNot Nothing Then
uploadResponse.Close()
End If
If fileStream IsNot Nothing Then
fileStream.Close()
End If
If requestStream IsNot Nothing Then
requestStream.Close()
End If
End Try
End Sub

Private Sub List(ByVal listUrl As String)
Dim reader As StreamReader = Nothing
Try
Dim listRequest As FtpWebRequest = WebRequest.Create(listUrl)
listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails
Dim listResponse As FtpWebResponse = listRequest.GetResponse()
reader = New StreamReader(listResponse.GetResponseStream())
Console.WriteLine(reader.ReadToEnd())
Console.WriteLine("List complete.")
Catch ex As UriFormatException
Console.WriteLine(ex.Message)
Catch ex As WebException
Console.WriteLine(ex.Message)
Finally
If reader IsNot Nothing Then
reader.Close()
End If
End Try
End Sub

End Mole

可以通过设置 Credentials 属性来指定用于连接服务器的凭据,也可以将它们包含在传递给 Create 方法的 URI 的 UserInfo 部分中。

从 FTP 服务器下载文件时,如果命令成功,所请求的文件的内容即在响应对象的流中。通过调用 GetResponseStream 方法,可以访问此流。

如果使用 FtpWebRequest 对象向服务器上载文件,则必须将文件内容写入请求流,请求流是通过调用 GetRequestStream 方法或其异步对应方法(BeginGetRequestStream 和 EndGetRequestStream 方法)获取的。必须写入流并在发送请求之前关闭该流。

请求是通过调用 GetResponse 方法或其异步对应方法(BeginGetResponse 和 EndGetResponse 方法)发送到服务器的。请求的操作完成时,会返回一个 FtpWebResponse 对象。FtpWebResponse 对象提供操作的状态以及从服务器下载的所有数据。