pycharm上開發python代碼爽的一批,可是寫好的代碼要放在遠程訓練服務器上才跑的起來,pycharm Professional版本的Deployment提供了遠程調試功能。
對於沒有公網IP的遠程訓練服務器,需要先配置端口轉發,這裏介紹兩種端口轉發方式。
一、端口轉發
端口轉發姿勢一:使用natapp的免費隧道(公網可訪問,危險係數⭐⭐⭐⭐⭐,不推薦使用)
0、在遠程服務器上開啓sftp服務
1、登錄https://natapp.cn/ 註冊賬號,之後選擇購買免費隧道,隧道協議選擇TCP,本地端口22,購買後可以拿到authtoken。
2、下載natapp和config.ini 放到遠程訓練服務器/usr/local/natapp路徑下,在config.ini中添加authtoken。
3、添加執行權限
chmod +x natapp
4、./natapp 運行,運行後,可以看到轉發後的穿透地址
端口轉發姿勢二:ssh借道有(辦)公網IP的機器((辦)公網可訪問,風險自行評估)
0、公司給配置了一臺Ubuntu系統的臺式機器A,開發時想用自己的Windows筆記本B,把遠程CentOS訓練服務器記爲C
1、首先需要修改臺式機A上的ssh配置文件,如果不修改配置的話,將只有機器A可以訪問訓練服務器C。
$ sudo vim /etc/ssh/sshd_config
添加:
GatewayPorts yes
PasswordAuthentication yes
然後重啓機器A的sshd服務使上述配置生效。
$ sudo systemctl restart sshd
2、在訓練服務器C上向機器A主動建立SSH連接,轉發訓練服務器C的22號端口
3、用ssh命令轉發端口,ssh -NTf -R 轉發端口號:localhost:22 機器A的用戶名@機器A的IP
ssh -NTf -R 2333:127.0.0.1:22 [email protected]*.25*
輸入密碼後就在後臺運行了
4、驗證
在機器B上
ssh [email protected]*.25*
登陸上的話證明建立成功了
5、理論上,A和B可以是同一臺機器,也就是C可以直接把端口轉發給有pycharm的開發機器。不過由於我的開發機上下班會帶着移動,移動過程中SSH不能保持長連接,經常要重新配置IP,所以選擇了用辦公室的臺式機中轉。
二、遠程調試
0、機器B上安裝PyCharm Professional版本
1、PyCharm ->Tools ->Depolyment ->configuration 配置如下
2、測試一下是否能夠連接到服務器,如果還是無法連接到遠程服務器的話,可以輸入命令:ls -l /etc/ssh ,看看這個文件夾下的文件權限是什麼,如果不是600,運行命令chmod 600 /etc/ssh/* #運行命令後重啓ssh即可
3、這樣,Deployment的配置就完成了。這個配置完成了之後,其實是相當於配置了一個ftp工具連接到服務器上,從而可以查看和修改服務器上的文件。可以通過Tools > Deplotment > Browse Remote Host來打開相應的RemoteHost面板,這個面板顯示的就是服務器上的文件,顯示的範圍是你在Deployment中的Connection選項卡下配置的Root path路徑下的文件及文件夾。
可以直接在RemoteHost面板裏雙擊某個文件並且直接進行編輯。雙擊某個文件後你可以看到編輯區域的頂部有一個橫條,並且橫條的右邊有三各按鈕,分別是比較,撤銷和上傳操作。你在這裏面編輯文件之後,可以直接點擊上傳按鈕,就會提交到服務器了。但不推薦這樣編輯代碼,因爲整個項目實際上並不在本地。
4、要把整個項目同步到本地,可以打開Deployment->configuration->Mapping選項卡,更改一下本地路徑和遠程路徑,本地路徑應爲新建的空文件夾,我們要把遠程路徑下的代碼同步到這個本地空文件夾
5、設置代碼自動在服務器上進行同步
tools->Deployment->Options
以下文件(夾)默認不自動同步
.svn;.cvs;.idea;.DS_Store;.git;.hg;*.hprof;*.pyc
可以通過tools->Deployment->Options修改
6、在Pycharm->File->Settings->Project->Project Interpreter中可以使用同樣的訪問地址添加遠程服務器上的Python解釋器
選擇解釋器在服務器上的路徑
爲項目配置解釋器
配置完成之後,試運行,可以看到用的是服務器上的解釋器啦
ENJOY~!