當前位置:首頁 » 文件傳輸 » 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 對象提供操作的狀態以及從伺服器下載的所有數據。