首先去阿里云申请域名,并实名认证域名,否则无法解析域名到IP

租用国内服务器需要备案,上传身份证,购买阿里云幕布,拍照,审核,特别麻烦,租用国外的虽然不用备案但价格贵,速度慢,若可以用自己的笔记本做服务器的话既不需要备案还划算,但由于IP不是固定的,每次手动修改IP太麻烦,杭州电信大概是每隔4天凌晨3点自动更换一次IP,该工程可以每隔一段时间自动获取公网IP,若发现IP改变则调用阿里云接口修改域名IP,若你的笔记本连接的是路由器,则只需要去路由器设置界面开启DMZ,ip填写你的笔记本的内网ip,或者开启端口转发,ip填写你的笔记本的内网ip,内网端口填写你笔记本中服务器监听的端口,若使用https的话外网端口填写443,当然也可以填写除80,8080以外的端口。

使用方式

修改配置

  • 修改AutoBandDomain.DOMAINAutoBandDomain.SUB_DOMAIN为你的域名
  • 修改BandDomain.ID和BandDomain.SECRET为你的阿里云Access Key IDAccess Key Secret(如何获取Access Key ID和Access Key Secret见下文)

运行代码

  • mac和linux用户命令窗口切换目录到工程跟目录,运行run.sh,windows用户双击 run_wind.bat即可
  • 当然也可以把代码复制到eclipse等java编辑器中,同时加入commons-codec-1.10.jargson-2.8.1.jar依赖后运行AutoBandDomain

注意

  • 需要安装JDK,下载地址
  • 建议代码编码采用utf8
  • 支持mac和linux,windows暂未测试
  • 不支持openJDK,若一定要使用openJDK可以把HttpRequestHttpURLConnection替换成其他http库,比如okhttp

按照上述操作后你的域名就解析到你的笔记本的公网IP了,若你的笔记本没有直接连接公网,而是连接了路由器的话,可以在路由器管理页面开启DMZ或者端口转发,这样即使你在内网,外网中的用户通过域名也能访问到你了,附 极路由设置方式,其他路由器略有不同。

我的笔记本的内网IP是192.168.199.249,我的笔记本中的tomcat服务器监听的端口是8443,只要外网用户 访问 http://你的域名:443 就可以请求到你的tomcat服务器了,另外我还设置了1024端口映射到路由器的80端口,这样我就可以远程登录我的路由器了。

由于运营商封锁了80和8080端口,所以外网用户没法通过http默认的80端口进行访问,所以只能通过非80,8080端口进行访问。若一定要通过默认端口的可可以参考下文

配置Tomcat,开启https

https默认采用443端口,这个端口没有被运营商封锁,只要我们的服务器开启https的话外网用户就可以通过 https://你的域名 进行访问了,开启https需要SSL证书,你可以自己生成SSL证书,但浏览器会提示SSL证书有问题,所有我们可以去第三方申请免费的SSL证书,比如 腾讯云 或者 阿里云等等。

申请证书

以腾讯云为例,首先进入 console.qcloud.com/ssl ,然后点击申请证书

按照提示填写 域名和私钥密码,提交后会立即生成证书,可以下载下来放到tomcat服务器目录下,如果没有填写私钥密码,则不提供Tomcat证书文件的下载,需要用户手动转换格式生成。

可以通过 Nginx 文件夹内证书文件和私钥文件生成jks格式证书 转换工具:www.trustasia.com/tools/cert-… 使用工具时注意填写 密钥库密码 ,安装证书时配置文件中需要填写。

证书安装

以 tomcat7为例 配置SSL连接器,将下载的 你的域名.jks 文件存放到tomcat下的conf目录下,然后配置同目录下的server.xml文件:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"maxThreads="150" scheme="https" secure="true"keystoreFile="conf\你的域名.jks"keystorePass="申请证书时的私钥"clientAuth="false" sslProtocol="TLS" />
复制代码

可选配置

http自动跳转https的安全配置

到conf目录下的web.xml。在</welcome-file-list>后面,</web-app>,也就是倒数第二段里,加上这样一段

<web-resource-collection ><web-resource-name >SSL</web-resource-name><url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>复制代码

这步目的是让非ssl的connector跳转到ssl的connector去。所以还需要前往server.xml进行配置:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="443" />
复制代码

redirectPort改成ssl的connector的端口443,重启后便会生效。

配置完后重启tomcat即可生效,若无法通过https访问可查看 tomcat/log/catalina.yyyy-mm-dd.log 日志文件

若使用Apache、IIS、Nginx 服务器可以参考 www.qcloud.com/document/pr…

如何获取Access Key ID和Access Key Secret ?

登录阿里云,点击控制台,鼠标移动到用户名上会弹出如下窗口,点击 accesskeys 即可看到Access Key ID和Access Key Secret

代码地址 https://github.com/android-notes/personalServer

搭建免费私人服务器---用你的笔记本做服务器相关推荐

  1. 笔记本通过服务器提升性能,笔记本做服务器的配置

    笔记本做服务器的配置 内容精选 换一换 当用户访问使用CDN服务的网站时,本地DNS服务器通过CNAME方式将最终域名请求重定向到CDN服务.CDN通过一组预先定义好的策略(如内容类型.地理区域.网络 ...

  2. win8dns服务器没响应,win8笔记本dns服务器未响应怎么办

    在平时的日常生活里,有时候用win8笔记本电脑我们会遇到dns服务器未响应的问题,该如何解决win8笔记本dns服务器未响应这个难题呢?下面是学习啦小编收集的关于win8笔记本dns服务器未响应的解决 ...

  3. Excel服务器数据库修改,用excel做服务器数据库

    用excel做服务器数据库 内容精选 换一换 PL/pgSQL是一种可载入的过程语言.用PL/pgSQL创建的函数可以被用在任何可以使用内建函数的地方.例如,可以创建复杂条件的计算函数并且后面用它们来 ...

  4. 网站服务器数据丢失怎么补,服务器数据丢失原因,如何做服务器数据恢复?

    在日常工作中,我们在使用相关服务器系统的时候,总是偶尔会出现错误,导致系统崩溃,数据丢失等情况,因此,有的时候我们就需要合理的服务器数据恢复. 那么,为什么要做服务器数据恢复,有哪些办法呢? 根据以往 ...

  5. 云服务器体验——搭建简单私人网盘

    因为有项目要做,需要用到服务器,就开始玩玩服务器 云服务器就像一台虚拟的24小时不停运作的电脑,可以干很多事情,比如搭建自己的私人网盘.正好有大文件需要分享给别人,就打算学着搭建一个私人网盘,这样就避 ...

  6. 目前有哪些免费私人服务器租用呢?阿里云服务器免费试用3个月!

    目前有哪些免费私人服务器租用呢?阿里云服务器免费试用3个月! 目前有哪些免费私人服务器租用呢?很多朋友想搭建网站,应用和小程序等,又想白嫖不花钱,今天阿里云优惠网就给大家带来福利.目前阿里云有个别活动 ...

  7. 在Windows服务器上搭建Nuget私人服务器(超~详细)

    在Windows服务器上搭建Nuget私人服务器 一.使用VS2017/VS2019新建空白解决方案,操作如图: 步骤一:这里以VS2019为例,打开VS2019,选择[创建新项目]选项: 步骤二:选 ...

  8. Apache Archiva搭建Maven私人服务器

    Apache Archiva搭建Maven私人服务器 1. 下载 Archiva安装包 2. 安装archiva服务器 3. 启动服务器 4. 将 archiva 在 CentOS 中安装成服务 5. ...

  9. 几天时间【免费】搭建了自己的个人博客,免租服务器,免买域名,真香警告。

    几天时间搭建了自己的个人博客,免租服务器,免买域名,真香警告. 刚花了几天搭建了个网站,先上链接,欢迎来访:染墨小白的博客 现在市面上的博客很多,如CSDN,博客园,简书等平台,可以直接在上面发表,用 ...

  10. 免费邮件服务器软件 linux,Linux 快速搭建免费邮件服务器(docker)

    文章目录 Docker下搭建Ewomail邮件服务器 第一步:安装运行docker 第二步:登录管理中心 配置 iRedMail iRedMail简介 linux安装开源邮件服务器iredmail的方 ...

最新文章

  1. 一周的微信公众平台接口开发总结
  2. 域控制器配置系统要求
  3. 网络营销推广解答网站排名上下摇摆不定怎么办?
  4. display(block,inline,none),visibility(visible,hidden)之间的关系及区别(不同)
  5. 软考-信息系统项目管理师-项目合同管理
  6. 苏州数字网络计算机比赛,苏州市计算机学会数字化校园专委会2018年年会在我院召开...
  7. PHP的各种参数设置ini_set:内存 错误等级 session
  8. java 兔子生仔问题
  9. 【黑金ZYNQ7000系列原创视频教程】06.ZYNQ来自FPGA的中断——按键中断实验
  10. WeakReference带来了什么
  11. 卷积神经网络原理解析
  12. python实时语音转写_使用实时语音转写_语音交互服务 SIS_SDK参考_Python SDK_华为云...
  13. 谁有《线性系统理论习题与解答》郑大钟
  14. 【JavaP6大纲】MySQL篇:为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分
  15. 优家益购——JavaWeb项目(Jsp+Servlet+MySQL+tomcat)
  16. VBAProject调用mysql出错_VBA代码调用Access数据库系统压缩和修复数据库功能
  17. [Error Msg] The root link_base has an inertia specified in the URDF, but KDL does not support ...
  18. anylogic第三课—多层建筑行人疏散仿真讲解
  19. java poi导出PPT格式
  20. 单面打印机=》双面打印

热门文章

  1. 新浪微博首席PHP技术顾问惠新宸:相信PHP可以走的更长远
  2. 测量电源纹波-正确测量方法
  3. 适合所有手环的app_Redmi Watch体验:手环终结者?
  4. 数字化转型的必要性和意义
  5. mysql 里 CST 时区的坑
  6. linux opessl下载_linux安装openssl
  7. vue中watch的详细用法,带deep,immediate
  8. 如何给PDF文件加密?PDF加密的3种方法
  9. NLP一些常见的专有名词
  10. 特征锦囊:特征无量纲化的常见操作方法