Later I changed a wireless router, and everything became OK. Maybe there was something incompatible between the former router and the latter. Yet I can't get the reason.
--------update---------------------
~ % uname -a
Linux archlinux 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux
~ % ip route
default via 192.168.1.1 dev wlp3s0 metric 303
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.20 metric 303
~ % cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.1.1
~ % lspci -vvv
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723AE PCIe Wireless Network Adapter
Subsystem: Realtek Semiconductor Co., Ltd. Device 0726
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 18
Region 0: I/O ports at e000 [size=256]
Region 2: Memory at f7d00000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: rtl8723ae
Kernel modules: rtl8723ae
Description: If it connects to the router, it gets a valid IP address, in my case, it's 192.168.1.20, but it has no connection with others.
ping 192.168.1.1
returns nothing, and it won't get timeout error until I press Ctrl+C to cancel it.
What confuses me is that it runs normally connecting to other routers, and other devices runs normally connecting to the very router. I just can't figure it out.
I've tried opensuse livecd and archlinux livecd, everything is OK. So I think there may be something wrong with the driver. So I compiled the wireless driver from source, rebooted, and nothing changed.