PhpStorm远程开发:如何访问远程机器上的HTTP网站?
解决远程Docker内部站点访问问题(无需VNC)
方案1:本地SSH端口转发+本地hosts映射
这是单站点访问最直接的方式:
- 在本地终端执行SSH端口转发命令,将远程Docker容器的Web端口映射到本地:
若想直接用80端口(无需加端口号访问),需用sudo提升权限:# 把远程内部的172.25.0.3:80转发到本地8080端口 ssh -L 8080:172.25.0.3:80 你的远程用户名@远程主机IPsudo ssh -L 80:172.25.0.3:80 你的远程用户名@远程主机IP - 修改本地hosts文件,将
myapp.demo映射到本地回环地址:- Linux/macOS:编辑
/etc/hosts,添加一行:127.0.0.1 myapp.demo - Windows:编辑
C:\Windows\System32\drivers\etc\hosts(需管理员权限),添加同样内容
- Linux/macOS:编辑
- 现在直接在本地浏览器访问
http://myapp.demo:8080(用80端口则直接访问http://myapp.demo)即可。
方案2:利用PhpStorm自带的SSH隧道
既然已配置好PhpStorm远程开发环境,可直接在IDE内配置端口转发,无需手动执行SSH命令:
- 打开PhpStorm的
File > Settings(Windows/Linux)或PhpStorm > Settings(Mac) - 导航到
Tools > SSH Configurations - 选中正在使用的远程主机配置,点击右侧的
Edit按钮 - 在弹出窗口切换到
Port Forwarding标签页 - 点击
+添加转发规则:- Local port:填写本地要使用的端口(比如8080)
- Host:填写远程Docker容器的IP
172.25.0.3 - Port:填写容器的Web端口(比如80)
- 保存配置,连接远程开发环境时隧道会自动建立
- 同方案1修改本地hosts文件,之后通过
http://myapp.demo:8080访问站点
方案3:动态SOCKS代理(多站点场景)
若远程有多个内部站点需访问,用动态SOCKS代理更高效:
- 在本地终端执行命令建立动态转发:
ssh -D 1080 你的远程用户名@远程主机IP - 配置浏览器使用SOCKS5代理:
- 代理地址:
localhost,端口:1080 - 开启「远程DNS解析」(部分浏览器叫「SOCKS v5代理的远程DNS」),让浏览器通过远程主机解析
myapp.demo域名
- 代理地址:
- 无需修改本地hosts(远程主机的/etc/hosts已有映射),直接访问
http://myapp.demo即可
关于X11转发报错的说明
你遇到的X11 connection rejected because of wrong authentication错误,是X11转发的认证机制问题。需本地安装X服务器(比如Windows的Xming、Mac的XQuartz),连接时用ssh -Y(信任X11转发)而非-X,同时确保远程主机已安装xauth工具。但这种方式远不如SSH隧道高效,完全没必要用X11转发访问网页。
内容的提问来源于stack exchange,提问作者Developer
相关产品推荐
相关产品推荐

