如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器

文章目录

    • 1. 部署Firefox
    • 2. 本地访问Firefox
    • 3. Linux安装Cpolar
    • 4. 配置Firefox公网地址
    • 5. 远程访问Firefox
    • 6. 固定Firefox公网地址
    • 7. 固定地址访问Firefox

Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏览器垄断地位的浏览器之一。

在Docker中打开Firefox意味着我们将在一个Docker容器中运行Firefox浏览器。这对于一些特殊的测试场景非常有用,例如需要在不同版本的浏览器中进行测试。下面是一个简单的示例,演示如何在Docker中打开Firefox。

本次实践部署环境为本地环境,在Docker环境下部署Firefox浏览器后,并结合Cpolar内网穿透工具实现远程也可以访问!

1. 部署Firefox

创建外部挂载目录

mkdir -p /data/firefox/config

创建后,执行docker 命令一键启动运行即可

docker run -d --name firefox -e TZ=Asia/Hong_Kong  -e DISPLAY_WIDTH=1920 -e DISPLAY_HEIGHT=1080 -e KEEP_APP_RUNNING=1 -e ENABLE_CJK_FONT=1  -e VNC_PASSWORD=admin  -p 5800:5800 -p 5900:5900 -v /data/firefox/config:/config:rw --shm-size 2g jlesage/firefox
#参数介绍
-e TZ=Asia/Hong_Kong       # 设置时区
-e DISPLAY_WIDTH=1920
-e DISPLAY_HEIGHT=1080     #设置显示的高宽
-e KEEP_APP_RUNNING=1      # 保持启动状态
-e ENABLE_CJK_FONT=1       # 防止显示页面时中文乱码
-e SECURE_CONNECTION=1     # 启用HTTPS功能
-e VNC_PASSWORD=admin  #设置VNC的访问密码,自定义即可
-p 5800:5800               #访问firefox的web端口
-p 5900:5900               #VNC端口
-v /data/irefox/config:/config:rw         # 容器挂载目录,存放firefox数据
--shm-size 2g               # 设置容器的内存资源为2g 

运行后,输入docker ps 可以查看到运行的Firefox容器,接下来进行本地访问

image-20231127134541125

2. 本地访问Firefox

打开浏览器,输入Linux 局域网IP加5800端口,即可看到我们本地搭建的火狐浏览器界面

image-20231127135709627

上面设置的密码是admin,输入即可进入,这样我们就拥有了本地自己的一个浏览器,本地部署完毕后,下面安装cpolar 内网穿透工具,实现远程访问!

image-20231127135818895

3. Linux安装Cpolar

上面在本地成功部署了FireFox 火狐浏览器,并局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口 即:【http://局域网ip:9200】,使用cpolar账号登录(如没有账号,可以点击下面免费注册),登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

image-20231016143741228

4. 配置Firefox公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个firefox的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:5800(本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China

点击创建

image-20231127141131232

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

image-20231127141201174

5. 远程访问Firefox

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们火狐浏览器界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问 !(新地址访问,需要重新登录一下)

image-20231127141903529

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:firefox.cpolar.cn),这样更显正式,便于流交协作。

6. 固定Firefox公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20231127142421770

保留成功后复制保留成功的二级子域名的名称

image-20231127142445323

返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20231127142542205

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20231127142611735

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

image-20231127142724213

7. 固定地址访问Firefox

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地火狐浏览器!!

image-20231127143036497

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何给鸿蒙 APP 签名

生成签名证书指纹 在DevEco Studio工具侧生成密钥(.p12)和证书请求文件(.csr)。请根据以下使用场景,在AppGallery Connect侧申请应用证书(.cer)、Profile(.p7b)文件等。…

【Linux学习】进程间通信 (3) —— System V (1)

下面是有关进程通信中 System V 的相关介绍,希望对你有所帮助! 小海编程心语录-CSDN博客 目录 1. System V IPC 1. 消息队列 msg 消息队列的使用方法 1.1 消息队列的创建 1.2 向消息队列发送消息 1.3 从消息队列接收消息 1.4 使用msgctl函数显式地…

计算机笔记12(续20个)

190.指令寄存器:存放当前的指令 程序计数器:下一条要执行的指令内存地址 191.IEEE802标准中:802.3规定了CSMA/CD访问控制方法和物理层技术规范 802.2规定了逻辑链路控制LLC 802.1B规定了寻址、网间互连和网络管理 802.1A规定了体系结构 19…

南京移动为“2024横山徒步大会”公共安全保驾护航

近年来,公共安全事件因伤害性大、波及人数多而引起公众的高度重视。江苏移动南京分公司充分履行企业社会责任,积极发挥移动5G、低空网络技术优势,为“2024横山徒步大会”提供网络保障、安全巡检及应急物资运输服务,建立起一道公共…

科技查新是什么?一文了解!

本文主要解答 1、什么是科技查新? 2、科技查新有哪些作用? 3、科技查新一般应用于什么地方? 4、在哪能出具正规查新报告? 5、科技查新流程是怎样的? 带着这些问题阅读这篇文章相信一定会有收获!干活内…

【启程Golang之旅】运算符与流程控制讲解

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…

实验题目:克鲁斯卡尔(Kruskal)算法生成最小生成树(MST)原理及算法实现

一、实验目的 本实验旨在理解和掌握克鲁斯卡尔(Kruskal)算法的基本原理,并通过编程实现该算法,以求解给定无向加权图的最小生成树。通过本实验,能够加深对最小生成树概念的理解,并提升编程能力。 二、实验原理 克鲁斯卡尔算法是一种求解最小生成树的贪心算法。其基本原理…

如何让UE4.26使用VS2022【Windows,源码下载】

使用UE5一直用的是VS2022,都是因为团队需要,只能用UE4,而我电脑中拥有的UE4的版本是UE4.26以及VS2022,我不可能去下载VS2019来为这么一个项目,所以就研究了一下是哪里阻止了UE4.26不让我使用VS2022. 首先下载UE4.26源码…

记一次安卓“Low on memory“崩溃问题

前言 最近再调人脸识别算法相关demo,发现调试期间总是偶发性崩溃,捕获不到异常的那种,看日志发现原因是Low on memory,一开始还疑惑 App内存不够应该是OOM啊,怎么会出现这种问题,百思不得其解,直到我打开了 Android s…

Vue2常用的组件通信方式有几种

Vue2 组件通信方式详解 父子组件通信(Props) 子父组件通信($emit) 兄弟组件通信(Event Bus) Vuex 状态管理 Provide / Inject 1. 父子组件通信(Props) 定义: 通过在父组件…

在MySQL数据库中进行连接查询中的外连接查询

左外连接 特征:以左表为主,显示左表所有数据,相关联存在相同的值时显示对应数据,否则显示为NULL 语法:> select 表名.字段名称,表名.字段名称 from 表名 left join 表名 on 相关联的字段…

Linux java jni调用C++封装动态库

由于项目中java需要调用第三方提供的C动态库;由于第三方动态库传入的参数较多,还伴随着指针传入操作,导致java调用极为不便!因此催生出对于第三方的C动态库进行二次封装。java调用只需按结构传入一个结构化的string即可。话不多说…

使用匿名labmda表达式对一个函数的参数是个函数类型的具体实现时的 双向回调数据 双向处理业务逻辑

双向回调数据 双向处理业务逻辑在android的应用场景就是:Activity界面的RecyclerView与Adapter双向的相互传递数据处理业务逻辑 class HigherOrderFunctionSuspendActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?){//简化前 num表示参…

卧槽!这项目开源了!【送源码 】

随着科技的飞速发展,个人财务管理变得越来越重要。一个名为‘Maybe’的创新型个人财务与财富管理应用程序随之诞生,它以其丰富的功能和用户友好的界面受到了广大用户的关注。 现在项目方将这个价值 100万美元的个人理财应用项目开源了 Maybe Maybe应用…

Attention as an RNN

摘要 https://arxiv.org/pdf/2405.13956 Transformer的出现标志着序列建模领域的一个重大突破,它提供了一种高性能架构,能够充分利用GPU并行性。然而,Transformer在推理时计算成本高昂,限制了其应用,特别是在资源受限的…

吴恩达2022机器学习专项课程C2W2:2.19 sigmoid函数的替代方案 2.20如何选择激活函数 2.21 激活函数的重要性

这里写目录标题 引言sigmoid激活函数的局限1.回顾需求案例2.ReLU激活函数 常用的激活函数1.线性激活函数的解释 如何选择激活函数?1.选择输出层的激活函数2.选择隐藏层的激活函数 选择激活函数的总结1.输出层总结2.隐藏层总结3.TensorFlow设置激活函数 激活函数多样…

AI生成视频解决方案,降低成本,提高效率

传统的视频制作方式往往受限于高昂的成本、复杂的拍摄流程以及硬件设备的限制,为了解决这些问题,美摄科技凭借领先的AI技术,推出了全新的AI生成视频解决方案,为企业带来前所未有的视觉创新体验。 一、超越想象的AI视频生成 美摄…

大模型时代的具身智能系列专题(四)

google deepmind团队 谷歌旗下最大的两个 AI 研究机构——地处伦敦 DeepMind 与位于硅谷的 Google Brain 合并成立新部门 Google DeepMind。其将机器学习和系统神经科学的最先进技术结合起来,建立强大的通用学习算法。代表作有AlphaGo,AlphaStar&#x…

SpringBoot集成mongodb

引入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>添加yaml配置 spring:data:mongodb:uri: mongodb://localhost:27017/novel创建实体类…

鸿蒙ArkTS声明式开发:跨平台支持列表【组件快捷键事件】

组件快捷键事件 开发者可以设置组件的自定义组合键&#xff0c;组合键的行为与click行为一致&#xff0c;组件在未获得焦点状态下也可以响应自定义组合键&#xff0c;每个组件可以设置多个组合键。 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a; gitee.com/li-s…