Category Archives: 技术笔记

【第97周】图片这点事(下)

上一周 我们聊了各大平台对图片的要求,和图片的存储方式,这周我们聊聊怎么去申请开通自己的图片空间。

1. 图片网址的形式

图片网址有两种形式:包含域名的图片网址 和 包含IP地址的图片网址。

大家应该都知道 IP地址,通过http://www.getip.com/ 这样网站,你可以查到自己的IP地址,同样也可以查一个域名的IP地址,例如我的网站的IP地址如下:

知道了我的IP地址,那么可以通过包含IP地址的图片网址直接访问图片,例如下面的两个网址都可以访问相同的图片:

大家可能要说了,当然是包含域名的图片网址更加常用一点,那这对申请图片空间有什么影响么?

答案是有影响的:主要是影响你图片空间要在哪边申请,如果你要用域名的图片网址,你需要申请一个域名,在中国国内,申请完域名后需要实名认证才能开通域名,开通域名前只能通过IP地址访问你的空间,而如果直接在国外网站购买域名和空间,则不需要实名认证。

比如我的网站www.ebaymaster.cn,我在阿里云购买的域名和空间,然后通过阿里云的备案系统给域名备案,折腾了快一周,选择国内的阿里云,主要是想让国内的用户访问快点。

因为我们开通的图片空间主要是给ebay/amazon等国外平台用的,所以在国外购买域名和空间完全没问题,下面我演示下如何通过比较知名的网站GoDaddy购买域名和空间:

2. Godday购买域名和空间

首先打开网站 https://www.godaddy.com/hosting/web-hosting

选择一个空间套餐,大家可以选最左边的 经济型套餐,点击 ADD TO CART 继续:注意每种套餐都可以赠送一个一年免费使用的域名,但是套餐必须要是整年的:

选择12 months,即一年,然后点击下面的Continue

在这步要让你输入一个域名,这个域名是可以免费用一年的,如果你输入的域名可用,可以点击 SELECT & CONTINUE 继续:

在这边会让你确认下账单,注意一年的域名使用是免费的,如果没问题,点击Proceed to Checkout完成支付。

支付完成后登陆GoDaddy,进入后台,其中有4个模块:

  • DOMAINS:管理域名
  • WEB HOSTING:管理网站空间
  • WORK SPACE EMAIL:邮件,暂不管
  • PHOTO ALBUM:相册,暂不管

域名我们不用设置了,点开WEB HOSTING,点击Manage,进入网站空间管理后台:

然后点击 FTP Accounts,进入网站空间的FTP账号管理页面:GoDaddy会为你设置一个默认的FTP账号,你可以通过FTP工具登陆你的空间去管理你的空间图片。

3. 使用FTP工具上传图片到图片空间

推荐大家使用 FileZilla 这个免费开源的软件管理你的网站空间的文件,大家可以点击上图中GoDaddy的链接下载,也可以登陆FileZilla官网下载:

https://filezilla-project.org/

下载安装完成后,选择 文件 -> 站点管理器,然后点击 新站点,录入:

  • 主机:对应上图的FTP Server
  • 端口:21
  • 用户名:对应上图的 FTP Username

点击确定保存站点配置,然后在FileZilla中,点击左上角第一个图标,选择GoDaddy站点,开始连接你的空间直至完成。

连接完成后大家可以看到如下的窗口:左边是 本地文件夹和 文件夹下的文件,右边是远程的文件夹 和 文件夹下的文件,注意远程有一个public_html文件夹,这个文件夹很重要。

这个文件夹就是你网站空间文件存放的主文件夹,比如我有一幅图叫bottle.jpg,我放置在public_html/img底下,如果我的域名叫www.unicornsoft.net,那么可以通过如下的网址访问这个图片:

http://www.unicornsoft.net/img/bottle.jpg

也就是说public_html文件夹和我们的域名是对应的,我们可以在public_html这个文件夹底下建立自己的目录结构。

4. 图片空间产品放置建议

在你的图片空间,你可以在public_html底下建立一个子文件夹,比如叫product,然后在product底下建立各个产品的文件夹,文件夹按产品sku命名,然后把产品图片放置在各自的文件夹里面。

如果你的产品很多,那么product底下会有很多文件夹,这时候可以再多搞一层结构,即public_html/product底下先建立大类文件夹,比如100代表男生背包,200代表女生衣服,然后在大类文件夹底下建产品的文件夹(以产品sku命名),这样的话,一个产品图片的网址会有如下的形式:

http://www.unicornsoft.net/product/100/100101/100101.jpg

记住尽量用SKU为文件夹命名,不要用中文或者英文名称,会很乱,sku编码会更干净,放在Amazon批量上传表格等地方会更舒服。

5. 小结

我目前的图片其实不是放在GoDaddy,而是放在阿里云的云服务器上,配置什么的会稍微麻烦一点,后面我会研究下如何使用云服务器管理面板软件,例如cPanel,如果搞熟悉的话,买一个云服务器,可以多种用途使用:

  • 翻墙看Facebook等
  • 网站空间
  • 图片空间
  • 数据库空间

但是如果你不是IT理工男,GoDaddy这类空间还是很适合你的,好了,今天就到这里,我们下周再聊。

【第78周】防关联解决方案实操篇之三

本贴是防关联解决方案的终结贴。

第一步:购买阿里云服务器

本帖以阿里云作为例子,当然你可以选择其他的云服务器。

登陆http://www.aliyun.com/,选择 产品与服务 -> 弹性计算 -> 云服务器ECS,进入后点击 立即购买:

进入购买页面,选择配置,大家可以按如下选择:注意区域选一个离你近的,比如你在南方可以选择深圳,内存不差钱的可以选择1G,镜像选择Ubuntu,时间选择1年:

选择好配置,点击 立即购买,付费后,你会收到一封邮件,告诉你购买的云服务器的公网IP 和 内网IP,注意我们目前只使用公网IP,比如 120.26.xx.xx。

第二步:配置阿里云服务器

还记得前两个帖子的内容么?配置putty/FileZilla可以自由地访问阿里云服务器。

第三步:在阿里云服务器配置OpenVPN服务器

大家可以点这里看具体的操作步骤,但是说实话太复杂,好在有一个简单的脚本,大家打开如下链接:

https://github.com/Nyr/openvpn-install

或者从我的服务器直接下载这个配置脚本,然后用FileZilla把它传到阿里云服务器的/home目录下。

这是一个神奇的脚本,尤其在我花了N个小时研究DigitalOcean上的一个帖子如何配置OpenVPN无解后,发现用这个脚本几分钟就搞定了,我们先用putty登陆阿里云,然后执行命令:

sudo /home/openvpn-install.sh

如果不成功,可能对这个文件没有执行权限,执行命令:

sudo chmod +x /home/openvpn-install.sh

如果出来下面这个窗口,那么脚本就执行正确了,

一直回车,然后脚本就开始跑,配置服务器,最后完成的时候,应该生成了一个文件,例如ubuntuVPN.ovpn,这个文件要拷贝到我们本地的机器上。

第四步:下载安装OpenVPN客户端软件

从如下链接下载OpenVPN客户端软件:选择合适的版本,例如我的机器是Win7 64位,则选择 Installer (64-bit), Windows Vista and later:

https://openvpn.net/index.php/open-source/downloads.html

安装完成后,任务栏会出现OpenVPN客户端的图标。注意每次OpenVPN客户端软件运行都需要管理员权限。

然后,把在第三步生成的ubuntuVPN.ovpn文件拷贝到如下目录(用FileZilla):

C:\Program Files\OpenVPN\config

完成后,右击OpenVPN客户端软件,选择Connect,会开始自动连接OpenVPN服务器,成功后图标会变绿。

第五步:本地安装Win7虚拟机,然后安装OpenVPN客户端软件

为了防止关联,除了用VPN,本地还需要用Windows虚拟机,在一台局域网机器上安装VirtualBox,然后安装Win7虚拟机,再按步骤四操作,这样这台Win7虚拟机就可以连上阿里云的OpenVPN了。

连好后,打开baidu.com,输入ip,确定你的ip为阿里云服务器的公网ip,这样才能安心操作账号。

注意,可以在你的工作机器上远程访问这个Win7虚拟机,而不用每次都登陆局域网服务器,在你的工作机器上运行mstsc,然后输入Win7虚拟机的IP,这样访问虚拟机的速度还快。

好了,整个解决方案讲完了,是不是很简单?:)

【第77周】防关联解决方案实操篇之二

诸位,在上一篇帖子里面我们教大家如何安装配置虚拟机,有些朋友可能觉得过于简单,这篇帖子会深入,请大家耐心点啊!

这篇帖子要讲一个很基础的问题:如何访问虚拟机,包含:

1)如何使用putty登录Ubuntu的terminal。

2)如何使用FileZilla实现Ubuntu和宿主windows系统的文件互传。

===== 分隔线 ====

如何使用putty登录Ubuntu terminal

先下载putty,打开并按如下配置,在Host Name处输入Ubuntu的IP地址,点击Open:

此时会报错:

我们需要到虚拟机的terminal里面设置下putty才能访问:

a) 在虚拟机中先安装vim软件(类似windows下的记事本等文本编辑软件):按Ctrl + Alt + T打开terminal,输入

sudo apt-get install vim-gtk

然后可能输入密码,回车,terminal问你是不是要continue,你输入 Y 直到完成,注意这里的sudo是要用管理员权限执行这个安装命令。

b) 安装配置ssh:ssh是啥?其实我也不清楚,我只知道连接远程机器的terminal,远程机器上需要安装ssh服务器组件,客户端用putty选ssh方式连接远程:

在Ubuntu系统中输入如下命令安装ssh服务器组件:

sudo apt-get install openssh-server

然后输入如下命令打开ssh的配置文件:

sudo vim /etc/ssh/sshd_config

会出现如下窗口:

我们要改 PermitRootLogin 这行,傻眼了吧,这怎么操作?

Ubuntu下面的vim是很强大的,其操作可以在这个连接找到,我们先查找字符串 PermitRootLogin,输入字符 /,会进入查找模式,输入这个PermitRootLogin,按回车:

瞬间我们就到了想找的那行,是不是很神奇?

注意目前还不是编辑模式,输入字符i(insert的首字符),进入编辑模式,移动光标到最后,删除without-password,输入yes,按ESC退出编辑模式!

接下来要保存了,输入问号: , 然后输入wq,回车,文件被保存后退出vim,返回terminal。

然后重启ssh服务:

service sshd restart

c) 通过putty连接Ubuntu:回到windows系统,打开putty,选中刚刚保存的UbuntuPC,点击Load,然后点击Open:输入用户名和密码(在安装Ubuntu的时候设置的),即可连接上Ubuntu的terminal:

===== 分隔线 ====

接下来我们将使用另外一种方式连接到Ubuntu上,使用ssh key文件:

key文件有两个:公钥 和 私钥,怎么来?通过工具可以生成,没什么讲究。怎么用?私钥留自己,公钥给他人,如下图:

私钥我们自己藏好了,然后把公钥拷贝到各个远程的服务器上,这样以后就不用每次登陆都输入密码了,可以直接登,还特别安全,大家了解到这个程度即可。

1)生成 公钥 私钥:先下载软件puttygen,打开按如下配置

  • Type of key to generate: SSH-2 RSA
  • Number of bits in a generated key: 请输入4096,不要用2048
  • 点击Generate,然后鼠标在进度条下面的空白区域到处乱滑动(注意不是点击),直到完成。

完成后应该如下图所示,然后执行操作:

  • 点击Save public key,输入test_public_key,把公钥文件保存在一个地方,注意没有文件后缀
  • 点击Save private key,输入test_private_key,把私钥文件保存在同一个地方,注意文件后缀为ppk
  • 在顶部的最大的输入框右击鼠标,选择全选,拷贝公钥内容。

2)在Ubuntu上保存公钥文件

我们刚刚通过putty登陆了Ubuntu,还没断开吧?在terminal输入如下命令:(可以一行一行拷贝,然后在terminal上右击执行)

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys

这几句命令创建了一个文件夹.ssh,并且在.ssh底下创建了一个新文件authorized_keys,然后我们编辑这个文件:

sudo vim ~/.ssh/authorized_keys

然后拷贝刚刚的公钥内容,在terminal窗口右击:(如果不在编辑模式,输入i)

按ESC,输入:wq 保存退出。

3)配置putty使用私钥文件:

打开putty,选中UbuntuPC,点击Load,然后按下图设置:

最后返回Session点击Save,然后点击Open,即可不需要输入密码登陆Ubuntu的terminal:

=== 分隔线 ===

如何使用FileZilla实现Ubuntu和Windows文件互传

上面费了那么大劲,难道只能实现无痛登陆?错了!回到我们这个帖子的初衷是要实现防关联的解决方案,因此需要往阿里云的Ubuntu上上传文件,用刚刚生成的公钥+FileZilla就可以很方便地实现。

先下载FileZilla,安装打开后到 编辑->设置 页面:左侧选择 SFTP,点击 添加密钥文件,选中我们的密钥文件,完成添加。

完成后,点击 文件 -> 站点管理器,新建一个站点,输入Ubuntu的IP地址,端口填22,协议选 SFTP,登陆类型为 交互式,用户输入在安装Ubuntu系统的时候录入的用户名:

最后我们终于可以在FileZilla里面实现Windows和Ubuntu的文件互传了,这个实现了,那么你的电脑同远程的阿里云服务器互传文件也是一模一样的道理。

好了,今天就到这里,下次开始讲怎么在Ubuntu系统上安装VPN服务器了,下次见!

参考 Understanding public key private key concepts

参考 How To Create SSH Keys with PuTTY to Connect to a VPS

参考 How To Use Filezilla to Transfer and Manage Files Securely on your VPS

【第76周】防关联解决方案实操篇之一

我们先来看一句话(出处):

” Mastery of UNIX, like mastery of language, offers real freedom. ” (by Thomas Scoville)

这段时间因为要访问google、架设网站、搞防关联解决方案,捣腾了DigitalOcean、阿里云,在VPS上安装软件、更改设置,我渐渐地感觉到,这些知识其实我们每个人都应该会一点,基于此,我准备把我的学习过程在此和大家分享下。

本帖将介绍如何 安装和配置虚拟机,具体来说,就是在win7电脑上装一个虚拟机软件VirtualBox(另一款虚拟机软件是vmware),然后在虚拟机上装一个Ubuntu操作系统,最后用 putty软件 和 FileZilla 连接到这个Ubuntu系统,统统搞定后,连接配置阿里云等VPS就不成问题了。

【1】安装VirtualBox

VirtualBox是开源的,可以通过如下链接下载并安装(如果显示是不安全的链接,点开中间的下拉按钮,选择底部的确认前往即可)

https://virtualbox.org/wiki/Downloads

【2】在VirtualBox上安装Ubuntu

打开VirtualBox,点击 新建

然后输入虚拟机的名称,选择类型为Linux,版本为Ubuntu (32-bit):然后一直下一步,直到完成。

完成后返回VirtualBox,双击刚刚创建的UbuntuPC,会弹出这个窗口,然后选择Ubuntu系统的镜像文件,如果你有32位的Ubuntu ISO文件,可以直接选中它。(注意如果启动虚拟机时卡住了,试试把焦点切换到虚拟机的窗口,按下回车键,如果没有出现 选择启动盘 的对话框,可以在虚拟机 设置->存储->控制器 找到ubuntu的ISO安装文件)

如果没有,打开如下链接下载,注意要选择 32位 的Ubuntu镜像文件

http://www.ubuntu.com/download/desktop

下载下来的镜像文件名称类似 ubuntu-14.04.3-desktop-i386.iso,回到刚刚的 选择启动盘 对话框,选中这个镜像文件,然后点击启动,按如下选择 开始安装Ubuntu,后面不用做修改,一直点击continue直到安装成功。

【3】宿主机器访问Ubuntu

安装完成后,启动虚拟机的Ubuntu系统,登陆后,按Ctrl + Alt + T 调出 终端 terminal窗口,类似windows下的command窗口,在这里面可以执行命令:

为啥需要熟悉这个?因为当我们买了诸如阿里云的虚拟机,如果虚拟机是Ubuntu系统,我们只能靠远程连接到VPS的终端上,敲入命令对VPS进行配置、安装,可能和你想象的不一样,通过执行命令的方式,配置系统和安装软件的效率极高,后面你会有体会。

我们敲的第一个命令是 ifconfig,看看这台虚拟机的IP地址情况,类似windows控制台command下的ipconfig命令:

此处显示的IP地址是 10.0.2.15,在我们的宿主机器上是没法ping通这个地址的,也就是我们的windows系统不能访问Ubuntu系统,怎么破?

原来是虚拟机的设置不对,点击Ubuntu系统右上角的齿轮图标,然后shut down关闭Ubuntu系统,返回VirtualBox管理,选中UbuntuPC,然后点击设置:选择网络,将连接方式改为:仅主机(Host-Only)适配器,保存并启动Ubuntu系统。

启动后,按Ctrl + Alt + T 打开终端terminal,输入ifconfig,会发现IP地址已经变成了 192.168.56.101,类似192.168.xx.xx的地址都是局域网地址,这时候虚拟机和局域网里面的另外一台电脑就差不多了。

回到宿主的windows系统,按Win+R,输入cmd,调出windows 控制台,然后输入 ping 192.168.56.101,发现能ping通Ubuntu了:

注意:上面的虚拟机网络设置虽然可以让主机访问Ubuntu,不幸的是,Ubuntu没法上网,需要把连接方式从Host-Only 改成 桥接网络 才可以,具体怎么弄,参见这篇文章:

http://jingyan.baidu.com/article/948f59242e601dd80ff5f929.html

大体的概念为:在桥接模式下,不能给Ubuntu直接配置真实的无线网卡,只能创建一个虚拟网卡,然后让虚拟网卡可以共享 真实网卡的网络,同时配置Ubuntu使用这个虚拟网卡,这样Ubuntu就可以上网了,见下图:

好了,这次就聊这么简单的一点点,下一次我们说下如何用putty连接这个Ubuntu系统,同时如何生成密钥文件,并配置Ubuntu系统,让putty连接Ubuntu的时候不用每次都输入账号和密码,同时这个密钥文件也可以用在向Ubuntu传文件上面,这些都是最最基础的操作,非常重要!

下次见!