一键内网穿透, 让别人也能访问你的本地服务
一键内网穿透, 让别人也能访问你的本地服务内网穿透是啥把内网的服务暴露公网, 让别人可以访问到. 适用于前后端联调/项目展示等场景 Pinggy运行时间短, 带宽要求不高的场景, 一个免费的小工具足矣: https://pinggy.io/ 登录后, 你只要输入你本地服务所在的端口号, 就可以获取对应的命令, 复制到命令行一回车就可以实现内网穿透 原理就是ssh端口转发, 我之前的博客也提到过这样的应用, 不过自己实现比较麻烦. windows的cmd会要求输入密码, 怎么输都不对. 用git bash命令行就不需要输入密码 pinggy会为你提供一个固定的域名, 支持http和https访问. 这样其他人提供这个域名(不需要加上端口号)就可以访问到你本地的服务了 停止的方法也很简单, ctrl c或者直接关掉会话窗口, 关闭ssh连接就可以 现在的互联网服务真的是越来越便捷了
Docker方式安装常用软件(如MySQL, Redis等)
Docker 方式安装常用软件(如MySQL,Redis等)Why Docker?我决定用docker容器完全替代直接安装在本机上的 mysql, redis 等软件, 理由如下: 轻量级: 只会安装必要组件, 节省内存和硬盘. 例如 mysql, 我们一般只需要一个 mysql 服务器, 像 mysql 自带的命令行客户端, workbench 等组件其实都是多余的. 安装简单: 只要有docker环境, 只需要一个文件和一行命令即可安装。 隔离: 镜像内自带必要依赖. 再也不用担心缺少依赖或者依赖冲突了 统一: 启动/停止/重启都通过统一的 docker 命令来实现,会 docker 就可以,做到一通百通。降低学习成本。 易拆卸: 安装/卸载/修改版本对于容器来说是很简单的, 不会对主机环境有任何影响 跨平台:部分软件可能只有 linux 版本, 或者适用于你系统的版本安装起来很麻烦, 使用 docker 就可以避免这个问题, 因为容器都是运行在 linux 基础上的. 准备工作为了能够访问到容器,并实现容器间互联。我这...
ssh端口转发及其应用
ssh端口转发及其应用ssh端口转发可以用来灵活地实现对主机的访问, 主要有三种类型: 本地转发, 远程转发, 动态转发 以下例子中的命令都在A主机上执行, 可以认为A就是我们 需要保证你可以使用公钥免密登录跳板机1231 本地转发基本形式: ssh -L 本机上的端口X:目标主机:目标主机上的端口Y 跳板机用户名@跳板机 其中, -L是”本地转发”的意思. 本命令意为: 访问本机上的X端口就相当于访问目标主机上的Y端口, 中间经由跳板机的转发 模式很像我们常用的代理 以下是一个用于辨析概念的例子: 1ssh -L X:localhost:Y B_username@B_host 你肯定会想, “目标主机”参数填了localhost, 这不是闲的吗? 自己访问本地端口需要转发? 错, “目标主机”参数是相对于跳板机来说的, 对于跳板机来说, localhost是跳板机自己. 也就是说该案例中目标主机和跳板机是同一台机器 远程转发本地转发建立好了以后是我们自己用, 远程转发建立好了以后是给别人用的. 即, 我们充当了”跳板机”的角色 基本形式: ssh -R 使用者的端口X:目...
如何在数据库中安全地存储用户密码
如何在数据库中安全地存储用户密码演进一个账号 + 密码的登录体系在数据库中的存储历经了以下几个阶段: 表中存储账号和密码, 登录时使用select count(*) from user where username = ${username} and password = ${input}, 如果查出来有记录说明密码正确 用户的明文密码被暴露在了数据库中, 如果数据库泄露或者DB管理员偷看, 用户的密码就会泄露. 对于大部分习惯在多个平台使用相同密码的用户来说, 一旦密码泄露造成的后果将是灾难性的. 就算没有人尝试撞库, 修改所有平台的密码也是一个繁重的任务 表中储存密码的MD5值和账号, 登录时对用户填写的密码进行MD5处理, 得到inputMd5, 然后select count(*) from user where username = ${username} and password_md5= ${inputMd5}, 如果查出来有记录说明密码正确 这样避免了在数据库中明文储存密码, 还能实现密码的正确性验证, 但是在今天来看仍然是不安全的 因为一个字符串永远只对应一个...








